Commit Graph

16894 Commits

Author SHA1 Message Date
Igor Pecovnik
09ce370e55 feat: implement parallel repository management workflow
This commit implements a complete parallel repository management system
that allows building and publishing Debian repositories in parallel,
significantly reducing build time for multiple distributions.

- `update-main`: Builds common/main component once for all releases
- `update -R <release>`: Builds release-specific components in isolated DBs
- `merge`: Combines common + release-specific components into final repos

- Isolated databases (aptly-isolated-<release>) avoid locking during parallel builds
- Common component built once, not duplicated per release
- Release-specific components (utils, desktop) built independently
- Final merge combines all components with proper GPG signing

- Fixed GPG signing to target top-level Release files (dists/{release}/Release)
- Pool cleanup before publishing avoids "file already exists" errors
- Smart package import skips duplicates during merge
- Proper handling of empty repositories and missing components
- Improved error handling and logging throughout

1. update-main: Build common component (once)
2. update -R <release>: Parallel workers build release-specific components
3. merge: Combine all components and publish with GPG signatures

This enables GitHub Actions to run multiple release builders in parallel,
reducing total repository build time from hours to minutes.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
2026-01-11 00:37:46 +01:00
Ricardo Pardini
9e7f6dc264 rockchip64: patch ATF 2.13 to build on gcc-14+ (ref rk3399's m0)
- move patches into version folder (`atf-rockchip` -> `atf-rockchip/v2.13`)
- also prepares patches for v2.14 since I had them anyway
- keeps using v2.13 for now, someone can test v2.14 later and bump; I've no rk3399
- new patches:
  - add `-no-pie` to rk3399's m0 build LDFLAGS (since upstream doesn't honor M0_LDFLAGS)
  - bump PMSURAM_RSIZE from 8k to 16k to avoid overflows - confirmed working by Amazingfate
- build tested OK on jammy/bookworm/trixie/noble/resolute
  - resolute's gcc 15 and it still builds
2026-01-10 11:13:47 +01:00
EvilOlaf
3874bc250b fix patching config
`overlay-directories:` has been commented by accident
2026-01-10 11:10:27 +01:00
EvilOlaf
6d7c35e244 rewrite 2026-01-10 11:10:27 +01:00
EvilOlaf
c4975eed99 sunxi64: move whole device trees out of patches
adjust patches which modify the dts afterwards
adjust series
2026-01-10 11:10:27 +01:00
EvilOlaf
5d007ab5bc sunxi: move whole new device tree out of patches 2026-01-10 11:10:27 +01:00
EvilOlaf
6881a93e06 sunxi: cleanup old patchsets
leave 6.15 for reference
2026-01-10 09:50:11 +01:00
Ricardo Pardini
cbfbfb680e sunxi-6.18: rename patch that does fixups for clarity 2026-01-09 20:49:21 +01:00
EvilOlaf
ffcc7b713e adjust series 2026-01-09 20:34:24 +01:00
EvilOlaf
857c6edb1a adjust patching_config, remove overlays from patches 2026-01-09 20:34:24 +01:00
EvilOlaf
00ca186341 actually copy everything and adjust do not commit regex 2026-01-09 20:34:24 +01:00
EvilOlaf
e082431348 copy arm64 overlays 2026-01-09 20:34:24 +01:00
EvilOlaf
e8a8754a04 copy armhf overlays 2026-01-09 20:34:24 +01:00
EvilOlaf
9dec3a39af rewrite for cleanup, disable dt patch which was moved for testing beforehand, enable overlay autopatcher 2026-01-09 20:34:24 +01:00
Ricardo Pardini
c02a76b1dd sunxi/sunxi64-6.18: rework patching config for 32/64; extract one DT from null-patch to bare
- now each arch has its own dt folder, with its own Makefile auto-patched
- simple Makefile autopatching with `add-only: true`
- as example convert 01 null-patch to bare-dt in `dt_32/` (drop from series too)
2026-01-09 20:29:08 +01:00
Ricardo Pardini
1ab9073db2 patching: Makefile Autopatcher: only add entries for DTs in same target_dir
- when auto-patching more than one Makefile, only add the DTs added to the corresponding directory
2026-01-09 20:29:08 +01:00
Ricardo Pardini
0770f880ea genio-6.19: switch to add-only DT Makefile AutoPatcher 2026-01-09 20:29:08 +01:00
Ricardo Pardini
d03b9a924a rockchip64-6.19: switch to add-only DT Makefile AutoPatcher 2026-01-09 20:29:08 +01:00
Ricardo Pardini
a85a5aef67 patching: introduce add-only mode for DT Makefile AutoPatcher
- Autopatcher was commiting atrocities to the upstream DTs that are so
  carefully hand-crafted, by simply rewriting everything, or trying to be
  smart and failing at it (`incremental: true`)
- Instead, add `add-only: true` mode, where we simply only ever add to the
  end of the Makefile, adding each new .dts and optionally the `subdir-y`
  for overlays
2026-01-09 20:29:08 +01:00
Patrick Yavitz
a61ff239af NanoPi R3S LTS: Update to u-boot-v2026.01
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
2026-01-09 13:18:14 -05:00
Igor Pecovnik
21f3af10ba Drop USB wireless driver that doesn't want to compile 2026-01-09 08:17:19 +01:00
Ricardo Pardini
6e7d2798e3 u-boot: allow custom LOGLEVEL with UBOOT_LOGLEVEL (default to 6) 2026-01-09 00:40:11 +01:00
Ricardo Pardini
7213d8e8c6 u-boot: better CONFIG_LOG/LOGLEVEL/LOG_MAX_LEVEL (=6) 2026-01-09 00:40:11 +01:00
Igor Pecovnik
d7a4c1b3ab Fix broken patch due to upstream changes, drop edge kernel as its not used 2026-01-08 21:38:09 +01:00
Ricardo Pardini
287931ac6e armbian-kernel: more eBPF-oriented options for userspace tooling 2026-01-08 19:40:54 +01:00
igorpecovnik
35be053fc1 Automatic board configs status synchronise 2026-01-08 19:29:12 +01:00
Ricardo Pardini
1d64ede95c grub: remove invalid hack for hvc0
- hvc0 (virtio console) used to be a challenge, but no longer, for a long time already
2026-01-08 19:28:55 +01:00
Ricardo Pardini
574abb9cad host-release: allow to build on resolute 2026-01-08 19:28:26 +01:00
Igor Pecovnik
4eac206ecf Fix rootfs compilation (dropping deprecated gtk2 engines), broken patch on meson64, series update 2026-01-08 19:27:48 +01:00
Ricardo Pardini
5baaad4e8d extensions/mtkflash: mtk-flash --no-erase-mmc1 landed upstream as --preserve-boot1
- of course, avoid a negation. example of how upstream is always best
2026-01-08 18:55:09 +01:00
EvilOlaf
ee4c79b19a rewrite everything
except patches adding overlays for sunxi and sunxi64
2026-01-08 17:58:43 +01:00
EvilOlaf
45aac305ac fix broken patch 2026-01-08 17:58:43 +01:00
EvilOlaf
e38d028214 sunxi-current: bump to 6.12.64 2026-01-08 17:58:43 +01:00
juanesf
2c025ef929 sun55iw3.conf bump u-boot to v2026.01 (final)
Based on (https://github.com/armbian/build/pull/9179)
2026-01-08 17:58:17 +01:00
EvilOlaf
176f78fdc4 Let's do edge only for now 2026-01-08 15:38:23 +01:00
EvilOlaf
881e231ba5 rewrite all patches 2026-01-08 15:38:23 +01:00
EvilOlaf
ee06d8cdd7 fix borked tz data 2026-01-08 15:38:23 +01:00
EvilOlaf
40173173cf fix broken patch 2026-01-08 15:38:23 +01:00
EvilOlaf
ba7701a991 sunxi: bump edge to 6.18.4 current to 6.12.64 2026-01-08 15:38:23 +01:00
Igor Pecovnik
63cf880b6e Rockchip maint: drop upstreamed patch 2026-01-08 15:36:51 +01:00
Ricardo Pardini
063c641686 genio: bootscript: boot-genio: rework addr's so can boot large initrd's
- desktop images have half the world in their initrd (plymouth?)
- `bdinfo` shows reserved regions, which are hit depending on the size of initrd
- when reserved region is hit, u-boot says `** Reading file would overwrite reserved memory **`
- done by AI after looking at `bdinfo` reserved regions
- hard lesson: all `0x` hex have to be double quoted, otherwise `Wrong image format for "source" command`
- add note about Meco having conjured up `load_addr` (it's `loadaddr`); doesn't hurt
- while at it, remove copypasta/duplicate bootlogo/consoleargs stanza
2026-01-08 12:30:24 +01:00
Ricardo Pardini
230f937d4b extensions/mtkflash: Mediatek mtk-flash direct flashing after build
- similar to `rkdevflash`, but for Mediatek devices
- also simpler; lk.bin & fip.img are produced by image build and directly used
- requires Rust+Cargo, so add those to hostdeps
  - since this is a core extension, those will be included in all Docker images too
  - which was bound to happen anyway since Rust in Linux Kernel is no longer an experiment
- extensions/mtkflash: sha1-based bin path, use fork & add `--no-erase-boot1`
- example invocation:
  - `BOARD=radxa-nio-12l BRANCH=collabora RELEASE=trixie EXT=ufs,mtkflash MTKFLASH_TTYACM_DEVICE=1`
2026-01-08 12:30:24 +01:00
Ricardo Pardini
d3d5bd2134 radxa-nio-12l: u-boot: config: extra CMD options
- `CONFIG_CMD_ITEST`   # itest expects integers on both sides, whereas regular test assumes strings
- `CONFIG_CMD_BOOTZ`   # bootz allows booting zImages
- `CONFIG_CMD_MEMINFO` # meminfo shows memory info in u-boot
- `CONFIG_CMD_SETEXPR` # setexpr allows arithmetic expressions in setenv
2026-01-08 12:30:24 +01:00
Ricardo Pardini
04cb12bfe0 radxa-nio-12l: u-boot: fix u-boot env conflict; include userspace tooling
- u-boot stores env in UFS LUN 1
- use a 2mb offset (different from vendor/Collabora's) to avoid any env conflict
- point fw_printenv/setenv at it at the correct offset and size
2026-01-08 12:30:24 +01:00
Ricardo Pardini
150f2e28b2 radxa-nio-12l: include SRC_CMDLINE for extlinux booting; add explanations
- set SRC_CMDLINE, used in extlinux/EXT=u-boot-menu scenarios
- note about d4/d8/d16 irrelevance now as we have RAM autodetection
- note about where the blobs (libdram/libbase/lk.bin) live in GH: https://github.com/armbian/mtkbin
2026-01-08 12:30:24 +01:00
Ricardo Pardini
431f53df3e genio: u-boot: patch: fdt_addr_r/kernel_addr_r/ramdisk_addr_r for large kernels/initrds
- this patches u-boot default addresses with the same values used in the boot-genio bootscript
- this enables booting extlinux with large kernels and initrd (eg: `EXT=u-boot-menu`)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
324d1ed403 genio: u-boot: patch: UFS 4k UMS fixes + BTRFS fixes/enablement
- backport fixes from upstream u-boot for
  - BTRFS (plus enable BTRFS and BZIP2 support for radxa-nio-12l)
    - tested with `CARD_DEVICE=/dev/mmcblk1 ROOTFS_TYPE=btrfs BTRFS_COMPRESSION=zstd` (no UFS!)
    - also with `EXT=ufs CARD_DEVICE=/dev/sdc ROOTFS_TYPE=btrfs BTRFS_COMPRESSION=zstd` (UFS!)
  - 4k block size UFS for UMS: fixes block size issue (USB issues unhandled)
- Enable "bind" command for the Mediatek-standard USB Gadget Ethernet
2026-01-08 12:30:24 +01:00
Ricardo Pardini
872863b95a genio: u-boot: patch: mt8195: boot order: SD -> UFS -> eMMC -> USB -> Network
- this way, one doesn't need to cripple UFS to be able to boot from SD
- USB didn't get the same treatment as it's slow and **not working**...
  - ...and beyond me to fix; both OTG and Host mode are funky in u-boot...
  - ...but seem to work fine in kernel
- IMPORTANT: keep in mind: "SDcard is NOT UFS (4k block)" and don't fall for traps!
- Network note:
    - `setenv ethaddr xx:xx:xx:xx:xx:xx` & `saveenv` & `reset`
    - required for network booting; mtk doesn't use random/cpu# MAC
    - required for stable MAC in kernel (keep IP from changing, etc)
2026-01-08 12:30:24 +01:00
Ricardo Pardini
a03b88841c genio: u-boot: patch: mt8195: adjust memory size at runtime and fixup fdt
- Use TFA + libdram to obtain and set the actual memory size.
- Overwrite the memory size in the devicetree that is passed to the kernel with the actual size detected.
- All credit to Bartosz Bilas' work for the mt8188/mt8370.
- This doesn't really "use" TF-A/libdram though, those call bl33 with magic arguments which we read here.
- That is implemented by a patch in TF-A for the mt8195 platform.
2026-01-08 12:30:24 +01:00
Ricardo Pardini
5911f02880 genio: mt8195: atf: patch: add TF-A RAM size autodetection pass to bl33
- With this, bl2 will pass down the DRAM size it gets from libdram
  down to bl33 (u-boot proper) via a magic location
- This is a rework of the implementation for another MTK plat (GRINN)
2026-01-08 12:30:24 +01:00