-
Notifications
You must be signed in to change notification settings - Fork 361
Description
There are 75 open PRs against this repository. After analysis, 59 can be cleanly merged, 15 should be skipped (7
already merged/superseded, 8 need separate handling), and 1 is closed.
I have done the merge multiple times and tested the binaries as best as I can. I am open to input, the goal would be to bring ONL up to date and get as many open PRs merged.
Artifacts
File: pr_merge_plan.md
Description: Complete runbook — step-by-step instructions for applying all 59 PRs in the correct order
────────────────────────────────────────
File: onl-merge-manual-steps.patch
Description: Patch covering all changes that can't be done via git apply (conflict resolution, file restructuring,
binary files, build fixes)
How to apply
REPO=opencomputeproject/OpenNetworkLinux
- Start from a clean master
- Follow Steps 1–61 in pr_merge_plan.md, running each git apply command in order. Some steps will partially fail —
this is expected. - Apply the manual corrections diff:
git apply onl-merge-manual-steps.diff - Verify no conflict markers remain: git diff | grep -c '<<<<<<'
What the manual diff covers
The manual diff handles everything git apply can't:
- Kernel config conflict resolution (Step 29c) — resolves conflicts between PR [ACCTON][AS5915-16X] Add new platform #1011 and Add CLS DS4101 platform #988
(SENSORS_PMBUS/UCD9000/TPS53679), adds USB_USBNET (28 sub-options), TCG_TPM (13 sub-options), MCE_LEGACY, MCE_INJECT,
MPL3115, and pre-sets TRUSTED_KEYS to prevent interactive kernel build prompts - as7946-30xb module restructuring (Steps 33–34) — PR [Accton][as7946-30xb] Modularize IPMI-Related functions #1042 moves kernel modules to src/ subdirectory with shared
accton_ipmi_intf module; PR [Accton][as7946-74xkb][as7946-30xb] Add unplugged psu's fan & thermal… #1047 ONLP merges for fani.c, platform_lib.c/h, psui.c - as7535-28xb chain merges (Steps 36–37) — sys.c data_path_reset merge, platform_lib.c/h thermal threshold merge
- aurora-610 line ending fix (Step 41) — CRLF→LF conversion after PR Clean up fixes for buildroot/hw-management #1044 snprintf fix
- ioget binary (Step 43b) — binary file from PR [S9500-22XST] Add Ufispace S9500-22XST platform support #881 fork
- dcg8510-32d platform (Step 57) — PR feat: Add full platform support for Accton DCG8510-32D #1030 too large for GitHub API, files checked out from PR branch
- base.py port config classes (Steps 22–29) — 7 new classes appended; can't be applied sequentially via git apply since
each PR expects the original EOF context - buster ipmitool (Step 27c) — added to buster package list
- ds4101 build fix — removed duplicate #include <linux/i2c.h> from platform_comm.c and platform_wobmc.c (causes
redefinition errors with newer toolchains) - Pre-merge prep PR (9 files) — see below
Pre-merge prep PR
A separate PR should be merged first (before the 59 PRs) or its changes can be applied via the manual diff after all
steps. It contains build system fixes required for the merge to succeed:
File: Makefile
Change: Add make clean target, .PHONY, ONL ?= $(CURDIR), fix "interative" typo
────────────────────────────────────────
File: docker/tools/onlbuilder
Change: Python 3 shebang, print()/except as/== 0 syntax, add Debian 12 bookworm builder, remove wheezy
────────────────────────────────────────
File: make/kbuild.mk
Change: Add olddefconfig before kernel build to prevent interactive prompts
────────────────────────────────────────
File: tools/mkinstaller.py
Change: Change --add-dir/--add-file from nargs='+' to action='append' (fixes grub module handling)
────────────────────────────────────────
File: onlp-snmpd/.../Makefile
Change: Add -lm to GLOBAL_LINK_LIBS
────────────────────────────────────────
File: jessie/stretch all-base-packages.yml
Change: Add build deps: autoconf, libtool, libc6-dev, g++, git
────────────────────────────────────────
File: ym2651y.c
Change: Add UPD1501SA-1190G/1290G PSU model checks (resolves index mismatch with PR #1019 after PR #1046)
────────────────────────────────────────
File: 5.4 kernel config
Change: Pre-set # CONFIG_TRUSTED_KEYS is not set (prevents interactive prompt when TCG_TPM is enabled by PR #988)
PRs included (59)
Group A: Independent (Steps 1–11)
#371, #477, #693, #755, #829, #859, #927, #929, #994
Group B: Rootfs & Build System (Steps 12–16)
#941, #810, #869, #1013, #1044
Group C: ym2651y.c chain (Steps 17–20)
Group D: Kernel config + new platforms (Steps 21–29)
#1011, #989, #990, #995, #1008, #1024, #1025, #1040, #988
Group E: as7946 chain (Steps 30–34)
#1007, #1041, #998, #1042, #1047
Group F: as7535-28xb chain (Steps 35–38)
Group G: as7315-27xb chain (Steps 39–40)
Group H: Non-Accton platforms (Steps 41–43)
Group I: Independent Accton platforms (Steps 44–61)
#985, #993, #996, #1006, #1010, #1012, #1014, #1015, #1020, #1023, #1027, #1028, #1029, #1030, #1032, #1035, #1037,
#1038
PRs skipped (15)
Already merged / superseded (7)
┌──────┬─────────────────────────────────────────────────────────┐
│ PR │ Reason │
├──────┼─────────────────────────────────────────────────────────┤
│ #684 │ Superseded by prep PR (-lm link flag) │
├──────┼─────────────────────────────────────────────────────────┤
│ #796 │ Superseded by prep PR (Makefile typo fix) │
├──────┼─────────────────────────────────────────────────────────┤
│ #882 │ Changes already present from PRs #1037/#1038 │
├──────┼─────────────────────────────────────────────────────────┤
│ #883 │ Platform directory already exists │
├──────┼─────────────────────────────────────────────────────────┤
│ #908 │ Superseded by prep PR (Python 3 + bookworm) │
├──────┼─────────────────────────────────────────────────────────┤
│ #982 │ Covered by PR #1027; NVMe kernel config already enabled │
├──────┼─────────────────────────────────────────────────────────┤
│ #696 │ splitDev()/parse() already rewritten on master │
└──────┴─────────────────────────────────────────────────────────┘
Needs separate handling (8)
┌───────┬───────────────────────────────────────────────────────────────┐
│ PR │ Reason │
├───────┼───────────────────────────────────────────────────────────────┤
│ #1018 │ Kernel 6.1 / Debian 12 — ONL v3 only │
├───────┼───────────────────────────────────────────────────────────────┤
│ #899 │ 51-file platform rewrite, conflicts with PR #996 │
├───────┼───────────────────────────────────────────────────────────────┤
│ #911 │ 53-file platform rewrite │
├───────┼───────────────────────────────────────────────────────────────┤
│ #938 │ Full 5.4 kernel config rewrite, conflicts with PRs #1011/#988 │
├───────┼───────────────────────────────────────────────────────────────┤
│ #480 │ build.sh merge conflicts with current master │
├───────┼───────────────────────────────────────────────────────────────┤
│ #473 │ 100+ files referencing old directory structure │
├───────┼───────────────────────────────────────────────────────────────┤
│ #735 │ Full 4.19 kernel config rewrite, conflicts with PR #941 │
├───────┼───────────────────────────────────────────────────────────────┤
│ #1026 │ 100+ files, gh pr diff returns empty (uses submodules/LFS) │
└───────┴───────────────────────────────────────────────────────────────┘
Known build issues
- ds4101 (PR Add CLS DS4101 platform #988): platform_comm.c and platform_wobmc.c include both <linux/i2c-dev.h> and <linux/i2c.h>, causing
struct i2c_msg / union i2c_smbus_data redefinition errors on newer toolchains. Fix is included in the manual diff.
Post-merge build order
- Kernels: 5.4-lts, 4.9-lts, 4.14-lts, 4.19-lts
- Rootfs: buster, stretch, jessie
- Shared packages: vendor-config-onl, onlp, onlp-snmpd, onlpd
- 14 new platforms: amx3200, as4625-30p, as4625-54p, as4625-54t, as4630-54npe, as5915-16x, as7515-24x, as9737-32db,
as9817-32d/32o, as9947-72xkb, dcg8510-32d, ds4101, s9500-22xst, wedge100bf-32qs - 25+ modified platforms: see pr_merge_plan.md for full list