Oboi here we go 🙄

Ubuntu has managed to do away with GNU Core Utilities in its default stack. The last three holdouts, cp, mv and rm, have moved to uutils’ coreutils; the Rust reimplementation Canonical has been feeding into the distro since 2025.

They had been held back from 26.04 LTS over flaws in the uutils versions. Everything else, from ls and cat to chmod and du, made that jump in earlier releases.

This change, while big, sits hidden away in an obscure mention in Canonical’s work-in-progress release notes for Ubuntu 26.10.

It’s been a long road

Canonical started oxidising Ubuntu last year, and Ubuntu 25.10 became the first release to ship coreutils as the default. That release also made sudo-rs the default privilege tool, replacing a command that had been in place for decades.

26.04 was the release where the plan did slow down quite a bit, as Canonical kept cp, mv, and rm on their GNU versions due to a bunch of TOCTOU issues that were blocking the full implementation.

These were caught during an audit, when Canonical commissioned Zellic for two rounds between December 2025 and March 2026, focusing on the most security-sensitive utilities first.

Across both rounds, Zellic raised 113 issues, and 44 of them were assigned CVEs. Canonical says the vast majority have been resolved.

Getting here has had its ups and downs, and the last stretch was not clean. In July, uutils cp went back into the archive and came straight out again after it broke live image builds.

The fix was quick; as the developers marked it “Critical,” the fix went upstream, and the migration landed in time for 26.10. What changes for you?

When typing commands, nothing changes for you on the surface. uutils coreutils is designed to be a drop-in replacement for essential GNU tools, and the project treats any divergence from GNU as a bug, further pointing out that some options may still be missing or behave differently.

So if you prefer staying on the GNU version, you have the option to install the coreutils-from-gnu package that houses all the required components.

The next stage

Coreutils is one piece of a broader campaign. Earlier this year, Canonical became a Gold Sponsor of the Trifecta Tech Foundation, pitching in €40,000 a year to fund memory-safe system software.

Under this, their current target is ntpd-rs, a Rust rewrite of the tools Ubuntu uses to keep its clock in sync. While work is still ongoing, it has already arrived for testing.

Its transition to being default is targeted for Ubuntu 27.04.

What Canonical is gradually building up towards is the completion of their oxidation vision for Ubuntu, and it’s not about blindly including new components. Rather, it looks like a measured approach that’s being worked out a few steps at a time.

  • Azazel@lemmy.ml
    link
    fedilink
    arrow-up
    84
    arrow-down
    5
    ·
    21 hours ago

    As a developer I love rust but canonical can fuck all the way off with this shameless license laundering.

    • TeaWithDani@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      4
      ·
      edit-2
      17 hours ago

      I really don’t see what they would gain by license laundering… They’ll unGPL Debian, Gnome, Wayland and the Linux Kernal next?

      If you wanted something out of copyleft, you would have an easier time just building on top of FreeBSD. It does like ~80% of what Ubuntu does already.

      I don’t feel too hot about them using MIT either, but I fail to see why they would implement this just to get rid of a GPL component. Seems expensive for nothing.

      • Azazel@lemmy.ml
        link
        fedilink
        arrow-up
        11
        ·
        17 hours ago

        Yea know that is a fair point. I guess I struggle to see any other reason to support this? Even though I believe rust is nominally more secure it’ll be a decade before any core utils clone will be as hardened as the original just by virtue of the original having decades of bug finding and fixes done already.

        I don’t think canonical would go through the effort under normal circumstances but I think they’re just taking the opportunity in front of them to ride the rust hype into a less copyleft ecosystem.

        This actually ties into a broader complaint I have that the rust ecosystem is built around MIT due to influence of the corporate backers of the rust foundation. Which is unfortunate because I actually really love rust as a language.

        • TeaWithDani@lemmy.world
          link
          fedilink
          arrow-up
          8
          ·
          17 hours ago

          My bet is, Canonical as a service provider has a customer that is willing to pay for access to more secure rust utils. Or they want to save resources fixing CVEs.

          There’s also the spectre of future security regulations possibly demanding these changes one day too.

          I still think its built on someone else’s money. lol

          • PuercoPop@piefed.social
            link
            fedilink
            English
            arrow-up
            5
            ·
            edit-2
            14 hours ago

            Ubuntu did invest in a security audit of uutils. It revealed issues that show fundamental misunderstandings on how to use posix APIs. If they cared about security they would have postponed the adoption at least one more cycle. Uutils are they not ready for general availability.

            Plus after decades of bug fixing coreutils doesn’t have lots of security issues.

            The VP of engineering of canonical keynoted Rust conf about uutils and is pushing forward the project. My guess is for political capital inside canonical.

            Will long term uutils or another coreutils written in Rust will be a great improvement. Today is not the day.

          • Azazel@lemmy.ml
            link
            fedilink
            arrow-up
            5
            ·
            17 hours ago

            Hmm you could very well be right. I guess I’m being to reasonable by knowing new rust code is not automatically (and not usually) more secure then old c battle tested c code. Shareholders and CEOs don’t understand that, I wouldn’t be surprised if someone’s been convinced rust is axiomatically more secure and bankrolling the migration over it

            • TeaWithDani@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              17 hours ago

              I think that aligns with the deployment strategy right? They are targeting 27 which is the middle release and not LTS. Get some mileage on it prior to 28 LTS.

              But yeah, its all corpo speech when they talk about it. Its probably some executive decision of the likes of “We think Rust is axiomatically better, so let’s implement it” like you said.

    • thingsiplay@lemmy.ml
      link
      fedilink
      arrow-up
      8
      arrow-down
      13
      ·
      20 hours ago

      How is this license laundering? These are complete new implementations and the original projects are not touched.

      • Azazel@lemmy.ml
        link
        fedilink
        arrow-up
        33
        arrow-down
        3
        ·
        19 hours ago

        Because Canonicals real goal is to move Ubuntu entirely to corporate friendly licensing under the pretense of migrating to rust. Obviously they leave the original untouched, it’s a matter of adoption. Without the oxidization argument nobody would have gone along with Ubuntu just deciding to do a clean room implementation of gnu tools in corporate friendly licensing, by making it about oxidation they are able to manipulate a large portion of the rust community into contributing/supporting their license laundering.

        • gian @lemmy.grys.it
          link
          fedilink
          English
          arrow-up
          2
          ·
          10 hours ago

          If you are right, they started from the wrong place. I am pretty sure that in a corporate environment there are thing more important to be “corporate friendly” than the coreutils.

        • thingsiplay@lemmy.ml
          link
          fedilink
          arrow-up
          5
          arrow-down
          10
          ·
          19 hours ago

          It’s not even Ubuntu doing the new implementation. And no, having a new project that is compatible to an existing one does not make it a license laundering. The word “license laundering” doesn’t even make sense.

          • Azazel@lemmy.ml
            link
            fedilink
            arrow-up
            19
            arrow-down
            3
            ·
            19 hours ago

            Uh call it whatever you want but canonical pouring money and resources into development of corporate friendly licensed clones to existing tools so they can avoid copyleft restrictions in the future is not good. I never understand when people feel the need to defend corporations obviously harmful behavior.

            • thingsiplay@lemmy.ml
              link
              fedilink
              arrow-up
              3
              arrow-down
              12
              ·
              19 hours ago

              This is not about defending corporations. It doesn’t matter who does that, I don’t think writing new tools with a different license is bad. My opinion has nothing to do about who does that, if communities, or corporations. I think having tools in a different language than C, especially something like Rust, is a good thing. Anyone who writes Rust code can read, adapt and make changes to it.

              And for licensing, GPL can be problematic in some cases that is not compatible with every license. Therefore having an alternative in MIT license is a good thing. Even if it ends up being in a proprietary program, its still better than not able to use the code. The old GPL code is still maintained independently.

              • sem@piefed.blahaj.zone
                link
                fedilink
                English
                arrow-up
                7
                ·
                12 hours ago

                I think I’d rather have it be rust AND copyleft, so the only projects that can use it are the ones that contribute back to society

                • thingsiplay@lemmy.ml
                  link
                  fedilink
                  arrow-up
                  2
                  arrow-down
                  2
                  ·
                  12 hours ago

                  MIT does not prevent from contributing back. Also GPL does not ensure it is contributing back. Besides thiefs and Ai companies, anyone can use GPL privately, modify the code and do whatever they want without contributing back, if not published openly.

                  Can you name me MIT licensed projects where it is a problem like you describe?

              • Azazel@lemmy.ml
                link
                fedilink
                arrow-up
                14
                arrow-down
                2
                ·
                18 hours ago

                I actually an agree an independent rust project would be really cool. If it was also GPL. I have yet to encounter any argument against GPL that doesn’t boil down to corpo boot licking.

                You say “Even if it ends up being in a proprietary program, it’s better than not being able to use the code”. This is a bad faith argument. Everyone can use GPL code freely, the restriction is only that you must also publish under GPL if you publish. I’m sorry your favorite corporation can’t profit off community projects without giving back to that community… not. If GPL was a real problem BSD would have overtaken Linux ages ago. But it didn’t because GPL is good not just for the community but for the project. The only people that don’t stand to gain from GPL are corporations that want to monopolize the technology.

                • thingsiplay@lemmy.ml
                  link
                  fedilink
                  arrow-up
                  1
                  arrow-down
                  7
                  ·
                  17 hours ago

                  One example is that GPL games cannot be published in Steam, with using Steams proprietary tools and features.

                  And in general I am not actually against for any company to use MIT licensed products without open sourcing their own proprietary tools. It would be nice if they open sourced it, but I am against in forcing companies to do so. Now I understand the risks involved here, but its not like MIT license is the devil, just like GPL can be problematic in some cases, MIT can too.

  • just another dev@lemmy.my-box.dev
    link
    fedilink
    English
    arrow-up
    7
    ·
    14 hours ago

    So… Let’s assume I don’t go around reading licenses for fun.

    Can anyone explain to me what the major differences are between MIT and GPL?

    • psycotica0@lemmy.ca
      link
      fedilink
      arrow-up
      25
      ·
      13 hours ago

      MIT: The recipient of this source code can do with it as they please. That may include building it, distributing it, modifying it, building and distributing those modifications, commercializing it, whatever.

      GPL: The recipient of this software, including builds of it, is entitled to the source code that was used to build it. Anyone with the source code can modify it, share those modifications, make builds with it, etc, but you cannot restrict the rights of the recipients of your builds more than the terms you yourself received the source code under. So you can make changes and distribute builds of those changes, but users you distribute builds to are also entitled to your code including the changes you made.

      AGPL: Same as GPL, except the recipients of this software also include users of the software, such as over a network. This was because with SaaS suddenly people were using software they hadn’t “received”, because it was running on someone else’s computer and they only provided inputs and received outputs, so the licence was created to bring this back in line with the spirit of the GPL.

      LGPL: You can use this library in your non-GPL code, and it doesn’t “infect” your entire codebase by extending the entitlement of the source code outside the library to all users of your builds. It does still entitle users to the source code of the library itself though, especially if you’ve made changes to the code of that library.

      People often talk about the GPL preventing commercial uses, but that’s actually not true. You’re allowed to sell GPL software. It’s just a somewhat risky venture, because all users you sell software to also get all the source code. That means anyone can buy your software, request the source, and then immediately start competing with you by offering it themselves for free or cheaper or whatever. So it’s allowed, but rarely works for very long unless you have a lot of good will in the community.

      • Auli@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 hours ago

        Sure but there are lots of companies that don’t provide source code for their GPL software. And nothing happens.

      • flying_sheep@lemmy.ml
        link
        fedilink
        arrow-up
        4
        ·
        10 hours ago

        Two additions:

        • some software is also sold under a separate license in addition to GPL, so you can choose if you want free open source or paid closed source (e.g. Qt has this model)
        • being in breach of license terms doesn’t mean you’re forced to do anything automatically: it means you can get sued and a judge might order you to do something (probably pay money) to heal the breach, or you can settle out of court (probably by paying money).
    • Dran@lemmy.world
      link
      fedilink
      arrow-up
      8
      ·
      14 hours ago

      MIT: I build my thing on top of your thing, it’s my thing now. I sell it, you have no rights.

      GPL: I build my thing on top of your thing and your license forces me to distribute my thing under the GPL, including the source code.

      There are legitimate arguments for both. Sometimes it sucks when proprietary things get built on top of MIT code but sometimes it takes money for innovation, and in the realm of code the world often benefits anyway by virtue of copycats or distillation.

  • mesa@piefed.social
    link
    fedilink
    English
    arrow-up
    24
    arrow-down
    1
    ·
    19 hours ago

    Its not 1-1 so this is going to fry some bash scripts and install scripts. At work we had to stop using Ubuntu because of a couple of bad installs via this change. Debian is just as good so its fine.

    I have no opinions on the rewrite, but I wish they made a flavor or something just for this.

    • psycotica0@lemmy.ca
      link
      fedilink
      arrow-up
      5
      ·
      13 hours ago

      I had a problem literally today because some script was relying on a particular behaviour of dirname that was handled differently between uutils and GNU. It’s been fixed already in a newer version than the one I had, but it took me a long time to figure out what the heck was going on, because finding a missing expectation in a nested shell script is tough…

      It was just mysteriously doing the wrong thing.

      • ISO@lemmy.zip
        link
        fedilink
        arrow-up
        2
        ·
        8 hours ago

        If you’re going to rely on shell scripts, you should stick to the built-in functionality of your shell as much as possible, as external commands can differ, or even be completely overridden, in random environments for a myriad of reasons.

        For example, use ${var%/*} instead of $(dirname $var). Forking out a whole OS process for such minuscule tasks is stupid anyway.

        This goes against la-la unix philosophy dreamy thoughts and beliefs, or portability fantasies. But it’s the right thing to do in the real world. And gives you at least some level of control over expected behavior.

        • psycotica0@lemmy.ca
          link
          fedilink
          arrow-up
          3
          ·
          5 hours ago

          I would argue the entire point of shell scripts is to coordinate running external programs, that’s what the shell is for, but I’m a dreamer.

          If I was just going to use the built-ins I’d use Python or Ruby or something.

          In this particular case I didn’t write the shell script, I was just debugging it because it broke on my system when I was running something.

          Also your implementation has a bug because dirname blah.png returns “.” 😉

          • ISO@lemmy.zip
            link
            fedilink
            arrow-up
            1
            ·
            27 minutes ago

            Also your implementation has a bug because dirname blah.png returns “.” 😉

            It wasn’t meant as a 1-1 implementation, but fair enough.

            I would argue that this helps my point. Because that’s an ambiguity dirname doesn’t help with. What if “bla.png” is, or expected to be, a dir?

            And if you’re going to test, are you going to use shell bult-ins or the test command from coreutils? And if you’re calling test, are you calling it with the full path so you don’t get a shell builtin anyway or not?

            If I was just going to use the built-ins I’d use Python or Ruby or something.

            Using a better language is absolutely the right thing to do for anything that is not trivial.

            Python is a shit choice for another reason though. They don’t know what backward compatibility means. So you may find your script broken in 2-3 years anyway. I don’t know about Ruby.

          • ISO@lemmy.zip
            link
            fedilink
            arrow-up
            1
            ·
            19 minutes ago

            Parent mentioned that the supposed bug was already fixed, that’s not the point.

            And they target GNU compliance, not POSIX compliance. Which is hard mode, since if it was the latter, they could have just checked out the freebsd utils or whatever at will whenever they felt unsure about something.

      • mesa@piefed.social
        link
        fedilink
        English
        arrow-up
        3
        ·
        13 hours ago

        I remember it was a common problem between Mac os and Linux as well.

        One of the first things I get brew to do.

  • story@lemmy.zip
    link
    fedilink
    arrow-up
    2
    arrow-down
    2
    ·
    8 hours ago

    how long am i gonna suck on this nasty dick until i finally move to BSD

  • Rioting Pacifist@lemmy.world
    link
    fedilink
    arrow-up
    13
    ·
    20 hours ago

    This is dumb, I have to use osX for work and having coreutils be similar but not quite the same is a PITA, why would you inflict this on yourself to close a class of bugs that aren’t really a huge concern for coreutils.

    • trevor (any/all) @lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      15
      ·
      20 hours ago

      The problem with macOS is that they use BSD utils, which are lacking functionality from GNU utils. If anything, Rust uutils being pushover-licensed means that Apple would be more likely to replace their broken coreutils with uutils and you’d get more parity with the coreutils installed on most Linux systems.

      And I say that as someone that despises pushover licenses, but this creates the probably that macOS utils won’t suck someday.

      • zaphod@sopuli.xyz
        link
        fedilink
        arrow-up
        2
        ·
        6 hours ago

        It’s not just lacking features, the BSD versions have sometimes completely different parameters compared to the GNU coreutils to achieve the same thing.

  • thenextguy@sh.itjust.works
    link
    fedilink
    arrow-up
    18
    ·
    22 hours ago

    So, they will have to continue to support feature for feature, bug for bug with coreutils and others forever? What’s the endgame here?

  • thingsiplay@lemmy.ml
    link
    fedilink
    arrow-up
    6
    arrow-down
    6
    ·
    20 hours ago

    I don’t understand why Canonical is replacing the existing GNU tools. Unlike many others, I don’t think its “taking over GPL projects” or “license laundering” and I am also not against MIT license. My question is, why Canonical is doing this.

        • mesa@piefed.social
          link
          fedilink
          English
          arrow-up
          4
          arrow-down
          2
          ·
          19 hours ago

          Im not sure as well. A lot of popular stuff is on MIT. But if I were to guess, its one of the most permissive licenses, which is somewhat a bad thing when companies suction up solutions with AI and spit them out without attributing the coder involved.

          • thingsiplay@lemmy.ml
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            19 hours ago

            I don’t think Ai companies care about the license at all, or cannot be checked after the training. So that is not really an argument to me.

            • mesa@piefed.social
              link
              fedilink
              English
              arrow-up
              4
              ·
              19 hours ago

              haha. Welp it only becomes an issue if your software doesn’t get audited. I worked in medical and government so it might be a different world where your at. We literally cant use certain software given licenses and such. It can get a bit loony.

              AI has tells they built in nowadays. If you use the newer models at least. But in addition…its pretty easy to just find the code in codebases if you end up in an audit.

              Im not defending it, just saying that MIT is one of those that you can get away with a lot more than other licenses. And that might be an issue to some.

              • thingsiplay@lemmy.ml
                link
                fedilink
                arrow-up
                1
                arrow-down
                2
                ·
                18 hours ago

                I can’t speak for medical field… but a more serious topic, in example videogames. :D

                I think sometimes GPL can be in the way, so it is a tradeoff. In example if you use proprietary Steam features in your game, then you cannot build the game with GPL libraries and code, because that is not compatible with proprietary code. For some that is exactly what the GPL is set to do, for others its hindering games and other software to be released on Steam with Steam features. That means, its impossible to sell GPL software on Steam, if you want to use any of those features (I think in example Achievements and online save files in example). MIT would solve this issue.

                • mesa@piefed.social
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  arrow-down
                  1
                  ·
                  18 hours ago

                  Ill be honest, I know of GPL but I know theres like 5 different versions of the GPL. Like AGPL is the most restrictive and has held up in court before because someone forked a project then stripped out everything, sold it again. And was deemed liable.

                  MIT could potentially solve it…or make it even more messy. Ill believe you on videogames.

                  If I were to guess, its probably moot in all cases unless it goes to court (or like my orgs not let you use software) and gets defended one way or another.

    • TrollAccount69@lemmy.ml
      link
      fedilink
      arrow-up
      7
      ·
      18 hours ago

      You could understand if you used a materialist analysis.

      Canonical sells products and support to corporations. The gpl is a problem for corporations because it requires that they contribute their changes back into the commons, creating additional overhead in many ways.

      Canonical is funding, prioritizing and providing support for a rewrite of a gpl project in a different language with a more permissive license.

      Put two and two together. Canonical is bankrolling and pushing something that materially benefits them.

      • paraproto@szmer.info
        link
        fedilink
        English
        arrow-up
        1
        arrow-down
        1
        ·
        8 hours ago

        But from all the things why core-utils? I don’t think it is common to need changes in core-utils. Now with this MIT version it may certainly be needed, because of broken compatibility. So it feels like instead of doing nothing (because they work as is) and using GNU core-utils they switch to MIT core-utils that are slightly incompatible and because of that need work. I would assume that it will certainly provide patches for MIT core-utils, but I am sure it will just make another platform target for scripts like macOS. Some GPL projects will change their scripts to make them work with Ubuntu.

        I guess corporations will corporate.

    • BB_C@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      18 hours ago

      Getting ahead of the curve regarding potential future legislations/regulations around unsafe languages, which may introduce contract conditions, liabilities…etc (See 2:30-4:30 of this talk for an overview).

      If they listened to the calls describing this move as premature, and it arguably was, they could have gotten strapped for time later.

      An implementation in a good safe fast modern language that developers actually enjoy has other tangible benefits of course. But if people want the “corpo reason”, the above should provide an answer.

      • thingsiplay@lemmy.ml
        link
        fedilink
        arrow-up
        1
        arrow-down
        3
        ·
        18 hours ago

        Thanks for providing a source. I will watch it at later time and put it on Watch Later list. Until then I can’t really say anything about it, just wanted to thank you.

    • TeaWithDani@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      3
      ·
      edit-2
      18 hours ago

      Rust eliminates memory safety vulnerabilities. It accounts for a large percentage of bugs that need patching in live environments, like servers.

      I believe Ubuntu wants to grow in iot or embedded devices so reducing patching needs gives them a competitive edge there.

      • SayCyberOnceMore@feddit.uk
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        1
        ·
        18 hours ago

        Whilst that may be true, I would expect coreutils has all memory issues debugged by now.

        I can understand new applications - or perhaps extended versions - to be created in Rust, rather than reinventing perfectly good wheels.

        It feels like they’re doing this just for the sake of it, and I expect there’s probably better things that could be done with the money / labour