Skip to content

packages: modernize packages that build on the existing toolchain#1127

Open
bhouse-nexthop wants to merge 23 commits into
opencomputeproject:onie-modernization-2026from
bhouse-nexthop:bhouse.packages-existing-toolchain
Open

packages: modernize packages that build on the existing toolchain#1127
bhouse-nexthop wants to merge 23 commits into
opencomputeproject:onie-modernization-2026from
bhouse-nexthop:bhouse.packages-existing-toolchain

Conversation

@bhouse-nexthop

@bhouse-nexthop bhouse-nexthop commented Jul 9, 2026

Copy link
Copy Markdown

Targets onie-modernization-2026. Independent — not stacked on any other modernization PR. It applies cleanly on onie-modernization-2026 and every package builds on the existing cross-toolchain (no dependency on the toolchain milestone, the python3 port, SBOM, or OCE).

Each package is now its own commit (one bump per commit, bisectable and reviewable in isolation).

New dependency libraries

Added to unblock consumers:

Package Version For
libmnl 1.0.5 (new) ethtool's netlink interface
libaio 0.3.113 (new) lvm2 ≥ 2.03's bcache I/O engine

Package upgrades

Package From To Notes
ethtool 3.14 6.15 now uses libmnl for netlink
zlib 1.2.11 1.3.2 source → madler GitHub release (old SF mirror 404s)
lzo 2.09 2.10
libpcap 1.10.4 1.10.6
tcpdump 4.99.4 4.99.6 needs libpcap ≥ 1.10.5
dropbear 2020.81 2026.91
keyutils 1.5.10 1.6.3 source → kernel.org snapshot (.tar.bz2 → .tar.gz)
dmidecode 3.1 3.7 cross-compile patch refreshed
acpica-tools 20150410 20260408 source → GitHub release assets (acpica.org retired)
ipmitool 1.8.18 1.8.19 GitHub source archive (./bootstrap)
kexec-tools 2.0.22 2.0.32 drop upstreamed aarch64 / dt-sorting patches
btrfs-progs v4.9.1 v7.0
pciutils 3.2.1 3.15.0 ONIE Makefile patch refreshed
gptfdisk 0.8.8 1.0.10 drop obsolete add-onie-partition-types patch
popt 1.16 1.19 drop obsolete aarch64 / uClibc-glob patches
openssl 1.1.1g 3.5.7 (LTS) drops legacy 1.1.x support
mtd-utils 1.5.2 2.3.1
i2c-tools 3.1.1 4.4
dosfstools 3.0.26 4.2
busybox 1.25.1 1.38.0 see DHCP VIVSO note below
lvm2 2.02.105 2.03.41 requires libaio

All bumps target current upstream releases from canonical sources (stable hosts preferred over flaky mirrors); patch series were refreshed and dead/flaky source URLs fixed as part of each bump.

busybox 1.38 + DHCP VIVSO

busybox 1.38 dropped the vivso (opt-125) and tftpsiaddr (opt-150) names from udhcpc's stock table. The busybox commit restores them (extended patches/busybox/dhcp-additional-options.patch) and makes ONIE's discovery decode DHCP options type-aware in rootconf/default/lib/onie/udhcp4_sd / udhcp4_net, so VIVSO-based OCP discovery keeps working. (The OCE compliance PR is the gate that exercises this end-to-end.)

Testing

Validated by full local cross-builds producing a green recovery ISO, plus CI on the prior stack. Commits are individually bisectable (each builds in order).

@bhouse-nexthop bhouse-nexthop force-pushed the bhouse.packages-existing-toolchain branch from f9af593 to 45e1e53 Compare July 9, 2026 18:57
bhouse-nexthop added a commit to bhouse-nexthop/onie that referenced this pull request Jul 9, 2026
…oolchain)

Squashed content of PR opencomputeproject#1127, pulled in as a dependency: older package versions do not build under GCC 14.

Signed-off-by: Brad House <bhouse@nexthop.ai>
bhouse-nexthop added a commit to bhouse-nexthop/onie that referenced this pull request Jul 10, 2026
…oolchain)

Squashed content of PR opencomputeproject#1127, pulled in as a dependency: older package versions do not build under GCC 14.

Signed-off-by: Brad House <bhouse@nexthop.ai>
bhouse-nexthop added a commit to bhouse-nexthop/onie that referenced this pull request Jul 13, 2026
…oolchain)

Squashed content of PR opencomputeproject#1127, pulled in as a dependency: older package versions do not build under GCC 14.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Add a libmnl package (minimal netlink library, netfilter.org), built
from the canonical upstream release via autotools.  Installs
libmnl.so/.so.0/.so.0.2.0 + headers/pkg-config into the sysroot.
Required by ethtool's netlink interface; included inside the
ETHTOOL_ENABLE block, ahead of ethtool.

Signed-off-by: Brad House <bhouse@nexthop.ai>
ethtool 6.x enables its netlink interface via libmnl, so build it against the new libmnl package. Split out of the assorted version-bump batch because, unlike those, it required adding a new dependency.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Source moved to the madler GitHub release assets; the old SourceForge/libpng mirror 404s intermittently.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Signed-off-by: Brad House <bhouse@nexthop.ai>
Signed-off-by: Brad House <bhouse@nexthop.ai>
Requires libpcap >= 1.10.5 (bumped in the preceding commit).

Signed-off-by: Brad House <bhouse@nexthop.ai>
Signed-off-by: Brad House <bhouse@nexthop.ai>
people.redhat.com is dead; source is now the maintainer's kernel.org git snapshot, which is a .tar.gz (was .tar.bz2).

Signed-off-by: Brad House <bhouse@nexthop.ai>
Refresh the ONIE cross-compile patch for 3.7.

Signed-off-by: Brad House <bhouse@nexthop.ai>
acpica.org's download URL retired; the ACPICA project now publishes official acpica-unix release tarballs as GitHub release assets.

Signed-off-by: Brad House <bhouse@nexthop.ai>
No dist tarball is published for 1.8.19; use the upstream GitHub source-tag archive (built via ./bootstrap).

Signed-off-by: Brad House <bhouse@nexthop.ai>
Drop the vendored aarch64-support and device-tree-sorting patches (upstreamed).

Signed-off-by: Brad House <bhouse@nexthop.ai>
Signed-off-by: Brad House <bhouse@nexthop.ai>
Refresh the ONIE Makefile-changes patch for 3.15.0.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Drop the add-onie-partition-types patch (obsolete) and refresh the cross-compile patch.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Drop the vendored aarch64-support and uClibc glob-pattern workaround patches (no longer needed).

Signed-off-by: Brad House <bhouse@nexthop.ai>
Signed-off-by: Brad House <bhouse@nexthop.ai>
mtd-utils 1.5.2 -> 2.3.1 (latest, infraroot.at).  Switch from the
git-commit snapshot scheme to a release tarball and from the hand-rolled
build to autotools ./configure (--with-zlib/lzo/ubifs/jffs, --without-
crypto/zstd/xattr/selinux/tests to match the available sysroot libs and
the prior build's behavior).

Signed-off-by: Brad House <bhouse@nexthop.ai>
i2c-tools 3.1.1 -> 4.4 (latest).  jdelvare.nerim.net is dead -> kernel.org
(.tar.bz2 -> .tar.gz).  Rework the 3 ONIE patches for the 4.x layout
(eepromer/ -> eeprog/, static libi2c, include/i2c/smbus.h).

Signed-off-by: Brad House <bhouse@nexthop.ai>
dosfstools 3.0.26 -> 4.2 (latest).  daniel-baumann.ch is dead, so source
the upstream GitHub release dist tarball (.tar.xz -> .tar.gz).  Switch to
the 4.x autotools build (--without-iconv, --enable-compat-symlinks) and
drop the obsolete remove-local-support patch (its gettext/locale
avoidance is now covered by --without-iconv).

Signed-off-by: Brad House <bhouse@nexthop.ai>
busybox 1.25.1 -> 1.38.0 (latest).  Refresh the remaining 8 ONIE patches for
the post-1.26 layout, where applet/config/kbuild registration moved from the
central applets.src.h/Config.src/Kbuild.src files into per-source //applet:,
//config: and //kbuild: comments; flash_erase uses the new getopt32
"^...\0=N" spec.  Reconcile conf/busybox.config to 1.38.0 (oldconfig) and
disable CONFIG_TC, which no longer builds against modern kernel uapi and was
never shipped.

Drop the dhcp-additional-options patch entirely and adapt ONIE to how
busybox's udhcpc handles options, so no busybox source patch is needed.
busybox trims rarely-used options from its built-in udhcpc table for size
(it dropped vivso/125 after ~1.25 and never carried tftpsiaddr/150), and:

  - Request side: busybox accepts a numeric option code for "-O"/"-x" with no
    table entry, but aborts on an unknown option *name*.  networking.sh now
    requests logsrv by code (-O 7) instead of "-O logsrv", which 1.38 would
    reject.  (discover already used numeric -O.)

  - Receive side: busybox exports an option it doesn't recognize generically
    as "opt<code>=<hexvalue>" -- raw hex, untyped.  udhcp4_sd decodes those to
    the typed value and name ONIE's discovery consumes -- 114->url (string),
    72->wwwsrv (IPv4), 150->tftpsiaddr (IPv4); vivso/125 is left as hex since
    import_vivso decodes it -- in the one place that builds onie_disco_*; and
    udhcp4_net decodes the received $opt7 into $logsrv (IPv4).  The decode
    (hex->ASCII for strings, hex->dotted-quad for addresses) reproduces what
    the in-table option types would have yielded, and is a no-op on a busybox
    that still carries the names, so it is correct across busybox versions.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Add a libaio package (Linux asynchronous I/O library) from the canonical
upstream release on releases.pagure.org, built via libaio's plain
Makefile.  Installs libaio.so/.so.1/.so.1.0.2 + libaio.h into the
sysroot.  Required by lvm2 >= 2.03 (its bcache I/O engine); included
inside the LVM2_ENABLE block, ahead of lvm2.

Signed-off-by: Brad House <bhouse@nexthop.ai>
lvm2 2.02.105 -> 2.03.41 (latest), sourced from sourceware (LVM2.<ver>.tgz).
Drop --with-clvmd (the clvmd cluster stack was removed in 2.03) and
disable optional deps absent from the sysroot; depend on the libaio
package (2.03's bcache I/O engine requires it).  Drop sbin/lvmchange
(blocklisted in 2.03) and the obsolete add-sysmacros.h patch.

Signed-off-by: Brad House <bhouse@nexthop.ai>
@bhouse-nexthop bhouse-nexthop force-pushed the bhouse.packages-existing-toolchain branch from 45e1e53 to 5be3c43 Compare July 13, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant