From 2190b4fe4e5f88fbf43dd9182ab9a7121cfd4124 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Fri, 27 Mar 2026 20:59:46 +0000 Subject: [PATCH] mkosi: pull in gnu coreutils for Ubuntu 26.04 and newer The default coreutils in Ubuntu 26.04 moved to uutils, which is broken in many subtle and annoying ways, breaking various tests. It's also a giant monolithic megabinary which makes the minimal image size go up and break other tests. Force the gnu coreutils to be pulled in all images. (cherry picked from commit 1d6585f2185e3656e655cf68c273a794904c8ff3) (cherry picked from commit 6a84afd4b06e2dad4acd627f0bd89e6fa42d8ee2) --- mkosi/mkosi.conf | 1 - mkosi/mkosi.conf.d/arch/mkosi.conf | 1 + mkosi/mkosi.conf.d/centos-fedora/mkosi.conf | 1 + mkosi/mkosi.conf.d/debian/mkosi.conf | 1 + mkosi/mkosi.conf.d/opensuse/mkosi.conf | 1 + .../ubuntu/mkosi.conf.d/coreutils-gnu.conf | 13 +++++++++++++ .../mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf | 10 ++++++++++ mkosi/mkosi.images/initrd/mkosi.conf | 1 - mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf | 1 + .../initrd/mkosi.conf.d/centos-fedora.conf | 1 + mkosi/mkosi.images/initrd/mkosi.conf.d/debian.conf | 8 ++++++++ .../mkosi.images/initrd/mkosi.conf.d/opensuse.conf | 1 + .../initrd/mkosi.conf.d/ubuntu/mkosi.conf | 4 ++++ .../ubuntu/mkosi.conf.d/coreutils-gnu.conf | 13 +++++++++++++ .../mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf | 10 ++++++++++ mkosi/mkosi.images/minimal-base/mkosi.conf | 1 - .../minimal-base/mkosi.conf.d/arch.conf | 1 + .../minimal-base/mkosi.conf.d/centos-fedora.conf | 1 + .../minimal-base/mkosi.conf.d/debian.conf | 8 ++++++++ .../minimal-base/mkosi.conf.d/opensuse.conf | 1 + .../minimal-base/mkosi.conf.d/ubuntu/mkosi.conf | 4 ++++ .../ubuntu/mkosi.conf.d/coreutils-gnu.conf | 13 +++++++++++++ .../mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf | 10 ++++++++++ 23 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf create mode 100644 mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf create mode 100644 mkosi/mkosi.images/initrd/mkosi.conf.d/debian.conf create mode 100644 mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf create mode 100644 mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf create mode 100644 mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf create mode 100644 mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian.conf create mode 100644 mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf create mode 100644 mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf create mode 100644 mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf diff --git a/mkosi/mkosi.conf b/mkosi/mkosi.conf index 61de80cd3b6..a450a1c2159 100644 --- a/mkosi/mkosi.conf +++ b/mkosi/mkosi.conf @@ -93,7 +93,6 @@ Packages= attr bash-completion binutils - coreutils curl diffutils dnsmasq diff --git a/mkosi/mkosi.conf.d/arch/mkosi.conf b/mkosi/mkosi.conf.d/arch/mkosi.conf index 025ef065032..2a1471864ea 100644 --- a/mkosi/mkosi.conf.d/arch/mkosi.conf +++ b/mkosi/mkosi.conf.d/arch/mkosi.conf @@ -17,6 +17,7 @@ Packages= bind bpf btrfs-progs + coreutils cryptsetup dbus-broker dbus-broker-units diff --git a/mkosi/mkosi.conf.d/centos-fedora/mkosi.conf b/mkosi/mkosi.conf.d/centos-fedora/mkosi.conf index 01f93e44bf7..d89b541171e 100644 --- a/mkosi/mkosi.conf.d/centos-fedora/mkosi.conf +++ b/mkosi/mkosi.conf.d/centos-fedora/mkosi.conf @@ -23,6 +23,7 @@ VolatilePackages= Packages= bind-utils bpftool + coreutils cryptsetup device-mapper-event device-mapper-multipath diff --git a/mkosi/mkosi.conf.d/debian/mkosi.conf b/mkosi/mkosi.conf.d/debian/mkosi.conf index c960a1b2ecd..f0ecec311a8 100644 --- a/mkosi/mkosi.conf.d/debian/mkosi.conf +++ b/mkosi/mkosi.conf.d/debian/mkosi.conf @@ -8,4 +8,5 @@ Release=testing [Content] Packages= + coreutils linux-perf diff --git a/mkosi/mkosi.conf.d/opensuse/mkosi.conf b/mkosi/mkosi.conf.d/opensuse/mkosi.conf index c1b48d14e50..850ac6a7fe1 100644 --- a/mkosi/mkosi.conf.d/opensuse/mkosi.conf +++ b/mkosi/mkosi.conf.d/opensuse/mkosi.conf @@ -36,6 +36,7 @@ Packages= bind-utils bpftool btrfs-progs + coreutils cryptsetup device-mapper dhcp-server diff --git a/mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf b/mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf new file mode 100644 index 00000000000..86d4d1132b9 --- /dev/null +++ b/mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# avoid pulling in the uutils package which is the default and is broken in several ways + +[TriggerMatch] +Distribution=ubuntu +Release=!jammy +Release=!noble + +[Content] +Packages= + coreutils-from-gnu + coreutils-from-uutils- + rust-coreutils- diff --git a/mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf b/mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf new file mode 100644 index 00000000000..b680604f001 --- /dev/null +++ b/mkosi/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[TriggerMatch] +Distribution=ubuntu +Release=jammy +Release=noble + +[Content] +Packages= + coreutils diff --git a/mkosi/mkosi.images/initrd/mkosi.conf b/mkosi/mkosi.images/initrd/mkosi.conf index 2b731d4397e..e2cced71c04 100644 --- a/mkosi/mkosi.images/initrd/mkosi.conf +++ b/mkosi/mkosi.images/initrd/mkosi.conf @@ -13,7 +13,6 @@ Environment=SYSTEMD_REQUIRED_DEPS_ONLY=1 ExtraTrees=%D/mkosi/mkosi.extra.common Packages= - coreutils findutils grep sed diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf index 909426a09cc..72043184025 100644 --- a/mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/arch.conf @@ -7,6 +7,7 @@ Distribution=arch PrepareScripts=%D/mkosi/mkosi.conf.d/arch/systemd.prepare Packages= btrfs-progs + coreutils tpm2-tools VolatilePackages= diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/centos-fedora.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/centos-fedora.conf index 1a971625bfe..faffe238a94 100644 --- a/mkosi/mkosi.images/initrd/mkosi.conf.d/centos-fedora.conf +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/centos-fedora.conf @@ -7,6 +7,7 @@ Distribution=|fedora [Content] PrepareScripts=%D/mkosi/mkosi.conf.d/centos-fedora/systemd.prepare Packages= + coreutils tpm2-tools VolatilePackages= diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/debian.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/debian.conf new file mode 100644 index 00000000000..eed9f5d6d78 --- /dev/null +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/debian.conf @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[Match] +Distribution=debian + +[Content] +Packages= + coreutils diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/opensuse.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/opensuse.conf index 93083957635..92fc255670f 100644 --- a/mkosi/mkosi.images/initrd/mkosi.conf.d/opensuse.conf +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/opensuse.conf @@ -7,6 +7,7 @@ Distribution=opensuse PrepareScripts=%D/mkosi/mkosi.conf.d/opensuse/systemd.prepare Packages= btrfs-progs + coreutils kmod tpm2.0-tools diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf new file mode 100644 index 00000000000..b9fd7bcf342 --- /dev/null +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[Match] +Distribution=ubuntu diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf new file mode 100644 index 00000000000..86d4d1132b9 --- /dev/null +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# avoid pulling in the uutils package which is the default and is broken in several ways + +[TriggerMatch] +Distribution=ubuntu +Release=!jammy +Release=!noble + +[Content] +Packages= + coreutils-from-gnu + coreutils-from-uutils- + rust-coreutils- diff --git a/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf b/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf new file mode 100644 index 00000000000..b680604f001 --- /dev/null +++ b/mkosi/mkosi.images/initrd/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[TriggerMatch] +Distribution=ubuntu +Release=jammy +Release=noble + +[Content] +Packages= + coreutils diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf index 8e57cd032df..60c6b4cc711 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf @@ -15,7 +15,6 @@ CleanPackageMetadata=yes Packages= bash - coreutils grep socat util-linux diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf index 6d77d2305d1..ce62ded2943 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/arch.conf @@ -6,6 +6,7 @@ Distribution=arch [Content] PrepareScripts=%D/mkosi/mkosi.conf.d/arch/systemd.prepare Packages= + coreutils inetutils iproute nmap diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf index 53cc68d7947..ac951fbf60f 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/centos-fedora.conf @@ -7,6 +7,7 @@ Distribution=|fedora [Content] PrepareScripts=%D/mkosi/mkosi.conf.d/centos-fedora/systemd.prepare Packages= + coreutils hostname iproute iproute-tc diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian.conf new file mode 100644 index 00000000000..eed9f5d6d78 --- /dev/null +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/debian.conf @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[Match] +Distribution=debian + +[Content] +Packages= + coreutils diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf index 8b38a769a1e..ebf55a3188a 100644 --- a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/opensuse.conf @@ -6,6 +6,7 @@ Distribution=opensuse [Content] PrepareScripts=%D/mkosi/mkosi.conf.d/opensuse/systemd.prepare Packages= + coreutils diffutils grep hostname diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf new file mode 100644 index 00000000000..b9fd7bcf342 --- /dev/null +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[Match] +Distribution=ubuntu diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf new file mode 100644 index 00000000000..86d4d1132b9 --- /dev/null +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils-gnu.conf @@ -0,0 +1,13 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later +# avoid pulling in the uutils package which is the default and is broken in several ways + +[TriggerMatch] +Distribution=ubuntu +Release=!jammy +Release=!noble + +[Content] +Packages= + coreutils-from-gnu + coreutils-from-uutils- + rust-coreutils- diff --git a/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf new file mode 100644 index 00000000000..b680604f001 --- /dev/null +++ b/mkosi/mkosi.images/minimal-base/mkosi.conf.d/ubuntu/mkosi.conf.d/coreutils.conf @@ -0,0 +1,10 @@ +# SPDX-License-Identifier: LGPL-2.1-or-later + +[TriggerMatch] +Distribution=ubuntu +Release=jammy +Release=noble + +[Content] +Packages= + coreutils