Skip to content

Merge plan for 59 outstanding open PRs #1048

@sonoble

Description

@sonoble

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

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

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

  1. Start from a clean master
  2. Follow Steps 1–61 in pr_merge_plan.md, running each git apply command in order. Some steps will partially fail —
    this is expected.
  3. Apply the manual corrections diff:
    git apply onl-merge-manual-steps.diff
  4. Verify no conflict markers remain: git diff | grep -c '<<<<<<'

What the manual diff covers

The manual diff handles everything git apply can't:

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)

#1046#1019#884#889

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)

#992, #997, #1022, #901

Group G: as7315-27xb chain (Steps 39–40)

#1036, #1009

Group H: Non-Accton platforms (Steps 41–43)

#815, #917, #881

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

  1. Kernels: 5.4-lts, 4.9-lts, 4.14-lts, 4.19-lts
  2. Rootfs: buster, stretch, jessie
  3. Shared packages: vendor-config-onl, onlp, onlp-snmpd, onlpd
  4. 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
  5. 25+ modified platforms: see pr_merge_plan.md for full list

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions