<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: collinfunk</title><link>https://news.ycombinator.com/user?id=collinfunk</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 16 Sep 2026 12:52:33 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=collinfunk" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>As I have told the authors privately, I find it quite difficult to take their claim that they "don't care about licensing" seriously. 13/14 of the projects under uutils are relicensing GNU or GPL'd software. The other one, shadow-rs, is totally vibe-coded, and the README mistakenly says the original shadow is GNU software under the GPL, which is neither true. If 14/14 are relicensing, or in that one case, what is thought to be relicensing, the simple explanation is that it is an explicit goal of the project.</p>
]]></description><pubDate>Tue, 15 Sep 2026 16:58:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49715414</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49715414</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49715414</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>Only GNU sort uses threads. There is still some room for improvement there, if anyone wants to take a shot at it. :)</p>
]]></description><pubDate>Tue, 15 Sep 2026 08:26:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=49709430</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49709430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49709430</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>Canonical hasn't contributed anything to GNU coreutils in the time since the switch was announced, just to be clear.</p>
]]></description><pubDate>Tue, 15 Sep 2026 08:23:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49709401</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49709401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49709401</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>I don't think sudo-rs ever advertised itself as a drop in replacement. They seem pretty upfront that it isn't their goal. See this list:<p><a href="https://github.com/trifectatechfoundation/sudo-rs#differences-from-original-sudo" rel="nofollow">https://github.com/trifectatechfoundation/sudo-rs#difference...</a></p>
]]></description><pubDate>Tue, 15 Sep 2026 08:17:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49709352</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49709352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49709352</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>Most of them are TOCTOU races or improperly following symbolic links. For example, uutils mkfifo(1) would create a world-readable and writable FIFO before using chmod(2) to restrict its permissions. Another user could replace that file with a symbolic link between the mkfifo(3) call and the chmod(2) to change the permissions of arbitrary files [1].<p>Other ones I find concerning are that you could also bypass '-- no-preserve-root' with a symbolic link to root [2]. Or by using paths equivalent to "/", e.g., "/../" [3]. Historically, GNU coreutils has been pretty good with symbolic links and avoiding TOCTOU races. The only notable one I can remember is a chmod(1) bug [4].<p>I agree with your general point that the number of CVEs is a useless metric, though.<p>[1] <a href="https://nvd.nist.gov/vuln/detail/cve-2026-35352" rel="nofollow">https://nvd.nist.gov/vuln/detail/cve-2026-35352</a>
[2] <a href="https://nvd.nist.gov/vuln/detail/cve-2026-35349" rel="nofollow">https://nvd.nist.gov/vuln/detail/cve-2026-35349</a>
[3] <a href="https://nvd.nist.gov/vuln/detail/cve-2026-35338" rel="nofollow">https://nvd.nist.gov/vuln/detail/cve-2026-35338</a>
[4] <a href="https://github.com/coreutils/coreutils/commit/425b8a2f534fe02e8c1e39ad6a3d2c18eca12de3" rel="nofollow">https://github.com/coreutils/coreutils/commit/425b8a2f534fe0...</a></p>
]]></description><pubDate>Tue, 15 Sep 2026 00:21:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49706095</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49706095</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49706095</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>You can use equivs to create a dummy coreutils-from-uutils package, as mentioned in the responses to that report.<p>It is frustrating that Canonical has no interest in fixing it, though. It makes it hard to take their claims seriously that you can still use GNU coreutils if you want.</p>
]]></description><pubDate>Mon, 14 Sep 2026 15:29:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49698634</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49698634</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49698634</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>I have had to tell them repeatedly to stop copying tests verbatim, including the original comments from GNU coreutils. So I doubt this is true, which is frustrating.</p>
]]></description><pubDate>Mon, 14 Sep 2026 15:27:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49698594</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49698594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49698594</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>Glad to hear that I am not alone. I feel like launchpad is totally ignored most of the time.<p>To get a response on a buggy GNU coreutils patch of theirs [1], I had to mention it in a rust-coreutils bug months later...<p>[1] <a href="https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/2150305" rel="nofollow">https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/215...</a></p>
]]></description><pubDate>Mon, 14 Sep 2026 15:17:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=49698412</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49698412</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49698412</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>I have. It has been an open bug upstream for years as well.</p>
]]></description><pubDate>Mon, 14 Sep 2026 14:30:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=49697510</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49697510</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49697510</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>Legacy is a bit harsh...<p>FWIW, Canonical did not reach out to any of us who maintain GNU coreutils before, after, or during the transition. Had we known, we could have easily warned them about the incompatibilities.</p>
]]></description><pubDate>Mon, 14 Sep 2026 14:28:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=49697461</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49697461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49697461</guid></item><item><title><![CDATA[New comment by collinfunk in "Ubuntu 26.10 completes transition to Rust-based coreutils"]]></title><description><![CDATA[
<p>I really don't understand why Canonical rushes this. If 'rm' can't remove all possible directory entries, that is a big issue:<p><pre><code>  $ podman run --rm -it ubuntu:26.10
  $ apt update -y; apt upgrade -y
  $ rm --version
  rm (uutils coreutils) 0.10.0
  $ gnumkdir -p $(yes a/ | head -n $((32 * 1024)) | tr -d '\n')
  $ rm -rf a
  Segmentation fault (core dumped) rm -rf a
  $ ls a
  a
  $ gnurm -rf a
  $ ls a
  ls: cannot access 'a': No such file or directory</code></pre></p>
]]></description><pubDate>Mon, 14 Sep 2026 14:24:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=49697392</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49697392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49697392</guid></item><item><title><![CDATA[New comment by collinfunk in "Sovereign Tech Agency invests €500k in Flatpak"]]></title><description><![CDATA[
<p>Note that STF did not fund GNU coreutils. They funded uutils.</p>
]]></description><pubDate>Fri, 28 Aug 2026 16:16:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=49480704</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49480704</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49480704</guid></item><item><title><![CDATA[New comment by collinfunk in "Rewriting in Rust"]]></title><description><![CDATA[
<p>> Is there any effort from the GNU organization to solve long-standing issues and pain points such as locales?<p>Most GNU projects don't have a large overlap, if any overlap at all, between their active contributors. I suspect they behave far more independently than you expect. Also, GNU didn't invent locales, if that is what you are getting at.<p>> As it stands I am generally averse to using GNU tools because my feeling is that they will be slow, clunky and exhibit arcane behavior in particular edge cases. ripgrep is significantly faster than GNU grep -R; fd than GNU find, etc.<p>Those programs have their imperfections as well. Particularly, they don't account for arbitrary limits like PATH_MAX. See 'fd' stops before visiting the deepest directory without altering it's exit code:<p><pre><code>  $ mkdir -p $(yes a/ | head -n $((16 * 1024)) | tr -d '\n')
  $ fd a | wc -l
  3119
  $ echo ${PIPESTATUS[@]}
  0 0
</code></pre>
On the other hand GNU find can visit arbitrarily deep directories:<p><pre><code>  $ find a | wc -l
  16384
</code></pre>
ripgrep has similar issues:<p><pre><code>  $ (while cd $(yes a/ | head -n 1024 |  tr -d '\n'); do :; done > /dev/null 2>&1; echo a > a)
  $ rg '^a$' a
  rg: a/[...]/a: File name too long (os error 36)
</code></pre>
GNU grep handles this fine:<p><pre><code>  $ grep -r '^a$' a
  a/[...]/a:a

</code></pre>
> For example, before LLMs were common, I once had to spend an entire day getting GNU flex and GNU bison to generate code that was: a) properly prefixed with a custom prefix, not yy_ et. al and b) did not use global variables.<p>Flex isn't a GNU project. I don't use or contribute to Bison, but I am pretty sure that is here:<p><a href="https://www.gnu.org/software/bison/manual/bison.html#Multiple-Parsers" rel="nofollow">https://www.gnu.org/software/bison/manual/bison.html#Multipl...</a><p>> I would have understood if, for backwards compatibility, this was gated behind a --sane flag or similar, but the GNU manuals were, at least at the time, under the confusing impression that what I was doing was advanced usage and used semi-fancy terms like "re-enterant" to describe what should be the normal behavior. I had to toggle several different knobs, some working for macros, others for functions, and the knobs were different for flex and bison.<p>Again, I don't contribute to Flex or Bison. I also do not use them. However, I will note that understanding the programs require some complex topics, specifically formal languages and automata. I am not entirely surprised that some of the documentation can be a bit difficult to understand.<p>> POSIX locales in particular are an anti-feature, and I say this as a non-English native, so uutils adding support for them feels like bug-compatibility with GNU, not feature-compatibility.<p>They are also widely supported by other implementations. It would be harmful to everyone if we were to disregard them. Also, as I mentioned previously, they were not invented by GNU.<p>> Other issues involve the dynamic linking requirements of glibc and of the nsswitch in a world that would increasingly prefer to link things statically.<p>I am a committer to glibc, but this isn't really my area of focus. You are free to discuss it on libc-help@sourceware.org if you'd like.<p>> I am really saddened if the reaction is just that GNU is the old and stable is the main argument here. Because when you read many GNU documents and manpages, written years ago, you get the feeling that the original authors were looking to do things properly, make breaking changes where they were sane (hence POSIXLY_CORRECT), innovate (Emacs), and overall would not have been particularly swayed by the "old and stable" argument of traditional Unix distributions at the time.<p>We make breaking changes. I recently changed 'printenv' and 'env' to safely quote their output. I will note though that although you want us to make more changes like this, others get quite angry at us when we do. Even changes that aren't breaking cause angry mailing list messages. We can't make everyone happy.<p>> Can GNU programs innovate?<p>Individual GNU projects are free to innovate as much or as little as they want.</p>
]]></description><pubDate>Fri, 21 Aug 2026 02:40:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=49383058</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49383058</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49383058</guid></item><item><title><![CDATA[New comment by collinfunk in "Rewriting in Rust"]]></title><description><![CDATA[
<p>Note, I am a co-maintainer of GNU coreutils. Whether that makes my opinion relevant, biased, or both, you can decide. :)<p>I really wished the documented their benchmarking methodology here, or at least cautioned the reader not to jump to conclusions based on the benchmarks shown.<p>GNU 'sort' performance can drastically be altered by the locale in use, the input, and the arguments given to the --buffer-size and --parallel options. GNU 'sort' is fairly conservative in how many threads it will use by default, and in my experience, much more so than uutils. This is because throwing more threads at 'sort' may make it faster (or may not), but also risks running out of memory. This is an issue with uutils, which is poor at deciding when to use external sorting:<p><pre><code>  $ export LC_ALL=C
  $ for i in {a..z}; do yes $i | head -n $(numfmt --from=iec 512M) | tr -d '\n' >> input; done
  $ time sort input > /dev/null

  real 0m24.245s
  user 0m0.896s
  sys 0m19.161s
</code></pre>
Here is the same command using the latest uutils commit compiled with 'make PROFILE=release':<p><pre><code>  $ time uu-sort input > /dev/null
  Killed                     uu-sort input > /dev/null

  real 2m53.560s
  user 1m40.634s
  sys 0m59.847s
</code></pre>
The process gets killed by the OOM killer. This is likely because uutils 'sort' decides to use 18 threads, instead of the 1 used by GNU 'sort'. I find it a bit frustrating that benchmarks are thrown out without any methodology or citations, because they are often trusted without question. These could be benchmarks from before uutils had localization, which was the case before 2025, and treated LC_ALL=en_US.UTF-8 as LC_ALL=C. In that case, of course it would be much faster than GNU coreutils, but it also means uutils would give you the wrong results for non-ASCII characters. There is, as shown above, much more considerations beyond speed that seemingly never get the time of day next to flashy benchmarks...</p>
]]></description><pubDate>Thu, 20 Aug 2026 05:49:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=49370832</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=49370832</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49370832</guid></item><item><title><![CDATA[New comment by collinfunk in "How the FSF sysadmins block botnets with reaction"]]></title><description><![CDATA[
<p>When did this occur? I am a GNU maintainer, and have never heard such a thing from the FSF. The GNU Coding Standards and other similar texts leave the decision to support non-free platforms up to the maintainer.</p>
]]></description><pubDate>Tue, 14 Jul 2026 17:04:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48909872</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=48909872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48909872</guid></item><item><title><![CDATA[New comment by collinfunk in "Show HN: A wc rewrite in Rust that makes it over 100 times faster"]]></title><description><![CDATA[
<p>I co-maintain GNU coreutils and wrote the Neon 'wc -l' code, for reference.<p>Based on my quick look at the source code, it looks like this program can handle ASCII whitespace. GNU coreutils uses iswspace, which is locale-aware. That limits how much we can optimize. We could probably add more optimization if the current locale is ASCII, e.g., LC_ALL=C on GNU/Linux.</p>
]]></description><pubDate>Fri, 10 Jul 2026 16:58:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48862474</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=48862474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48862474</guid></item><item><title><![CDATA[New comment by collinfunk in "OpenBSD has a use-after-free allowing local privilege escalation to root"]]></title><description><![CDATA[
<p>The others and I, working on GNU coreutils, frequently use 'yes' to generate a bunch of garbage input for testing programs. It is nice that it can do so quickly.</p>
]]></description><pubDate>Thu, 09 Jul 2026 17:00:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48849014</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=48849014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48849014</guid></item><item><title><![CDATA[New comment by collinfunk in "Honesty gets Emacs patch rejected"]]></title><description><![CDATA[
<p>The author states that they are not a lawyer, which is all good and okay. However, immediately afterwards they seem to claim that they know the law better than GNU, the FSF, and their lawyers. It confuses me how the author does not see that as a problem.</p>
]]></description><pubDate>Fri, 26 Jun 2026 05:29:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48682667</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=48682667</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48682667</guid></item><item><title><![CDATA[New comment by collinfunk in "DNI Gabbard Reveals Evidence of U.S. Taxpayer-Funded Global Biolab Program"]]></title><description><![CDATA[
<p>> Why would you mention the labs in connection to a question specifically about bio weapons?<p>Which situation do you think looks worse, admitting to having biological research facilities (unrelated to weaponry), or having Russians invade, take over one of said research facilities, and run with whatever story they want to justify their war?</p>
]]></description><pubDate>Sat, 13 Jun 2026 03:49:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48512823</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=48512823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48512823</guid></item><item><title><![CDATA[New comment by collinfunk in "DNI Gabbard Reveals Evidence of U.S. Taxpayer-Funded Global Biolab Program"]]></title><description><![CDATA[
<p>> is it really that big of a jump to connect gain of function research and bioweaponry?<p>Have you seen any evidence for the bio-weaponry claim?<p>> to be fair the world genuinely believes COVID spontaneously manifested directly next to a US funded COVID research site, so perhaps the gap is really that wide.<p>You would need more evidence than proximity to prove that.</p>
]]></description><pubDate>Sat, 13 Jun 2026 03:46:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=48512797</link><dc:creator>collinfunk</dc:creator><comments>https://news.ycombinator.com/item?id=48512797</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48512797</guid></item></channel></rss>