summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--news/2025-q4.mdwn171
1 files changed, 171 insertions, 0 deletions
diff --git a/news/2025-q4.mdwn b/news/2025-q4.mdwn
new file mode 100644
index 00000000..50266f47
--- /dev/null
+++ b/news/2025-q4.mdwn
@@ -0,0 +1,171 @@
+[[!meta copyright="Copyright © 2026 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled [[GNU Free Documentation
+License|/fdl]]."]]"""]]
+
+[[!meta date="2026-01-02 06:07 UTC"]]
+
+Hello! Welcome to a new qoth. This qoth covers new and interesting GNU/Hurd
+developments in Q4 of 2025!
+[[!if test="included()" then="""[[!toggle id=full_news
+text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]"""
+else="
+[[!paste id=full_news]]"]]
+
+[[!cut id="full_news" text="""
+
+Joan Lledó worked on [porting dhcpcd](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00084.html)
+ to the hurd. He also made some changes so that
+[lwip would work with dhcpcd](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00068.html). In
+this [message](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00084.html) he writes:
+
+> This is the current state of the port:
+>
+> - Support only for IPv4. IPv6 not supported yet.
+> - It works only over lwip. First, because dhcpcd requires some definitions from
+> headers and pfinet doesn't provide them AFAIK, but lwip provide the headers
+> through the liblwip-dev package.
+> Second, because both pfinet and lwip need changes in the translator in order
+> to be fully compatible with dhcpcd, and I made the changes in lwip since I
+> know it better.
+> - Only Ethernet is supported. This is because the Hurd doesn't define `AF_LINK`
+> so dhcpcd can't get any data from the interface other thant what is returned
+> by `getifaddrs()`.
+> I'm manually providing the MAC address and hardcoding the interface type to
+> Ethernet in the `if_init` function. I assume this is correct because the Hurd
+> only supports ethernet interfaces AFAIK.
+> - dhcpcd monitors the interfaces and gets notified when there are changes in
+> routes or network configurations. This is not working yet for the Hurd.
+> - dhcpcd implements some privilege separation by which the process spawns new
+> processes that run as a non-privileged user. Or that's what I understood.
+> It's not implemented for the Hurd because I've deferred this for now.
+> - Access to BPF is provided by libpcap.
+> - libpcap and liblwip-dev are dependencies for the Hurd.
+> - This has been tested only in a 32-bit Hurd.
+
+Damien Zammit worked on fixing [some](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00123.html)
+ [interrupt bugs](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00132.html)
+in the acpi server.
+
+He also made some [fixes](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00059.html) for rumpnet.
+
+He also worked on adding a
+[callwheel to GNU Mach's clock](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00015.html).
+This would make GNU Mach faster in certain ways. He writes:
+
+> Timeouts are now very fast to look up, at the expense of more memory,
+> a much shorter list is traversed rather than all of them. See [1].
+> Timeouts that are stopped before expiry are now faster to remove,
+> and inserting a timeout is faster.
+> [1] [https://doi.org/10.7936/K7VM49H5](https://doi.org/10.7936/K7VM49H5)
+
+Damien also made some progress on the
+[SMP support for `x86_64`](https://lists.gnu.org/archive/html/bug-hurd/2026-01/msg00007.html). He writes:
+
+> This allows gnumach to be compiled with `--enable-ncpus > 1 on x86_64`.
+> However, there is still work to be done particularly with SWAPGS
+> instruction. Notably, this changeset modifies the AP low boot address
+> to be hardcoded to 0x11000 because it is very difficult to implement
+> 64 bit AP bringup without knowing the offset in advance of waking up
+> the AP via SIPI.
+>
+> TESTED:
+>
+> - i386 UP still boots
+> - i386 SMP still works with -smp 1 (but freezes during rumpdisk probe)
+> - i386 SMP still works with -smp 6 (but freezes during rumpdisk probe)
+> - `x86_64 UP` still boots
+> - `x86_64 SMP` now compiles, but freezes with -smp 1 during grub module load
+> - `x86_64 SMP` now compiles, but freezes with -smp 6 just before AP bringup
+>
+> We still have work to do, but this definitely makes progress.
+
+
+We had a kind developer submit a tiny patch that kills
+[lingering zombie processes](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00019.html).
+
+
+Diego Nieto Cid fixed several compiler warnings throughout our codebase:
+[lwip](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00052.html),
+[nfsd](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00050.html),
+[nfs](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00047.html), etc.
+
+He also tidied up the glibc `setrlimit ()` call that lets a process limit
+its consumption of system resources. When Samuel committed this he
+[noticied](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00052.html)
+that it works well. Samuel wrote:
+
+> Thanks for this! That will stabilize boxes against programs that
+> allocate like crazy!
+>
+> Yes, it works well ; on packages that used to kill buildd boxes, we
+> properly get virtual addressing space limitation errors.
+
+For some time now, Mike Kelly has used `stress-ng` to stress test the hurd,
+and he keeps finding bugs to
+[fix](https://lists.gnu.org:443/archive/html/bug-hurd/2025-11/msg00038.html). He
+has even started to stress test in
+[real hardware](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00023.html)!
+Thanks Mike for making the Hurd more stable!
+
+He also worked on gnumach [fiddling to](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00026.html)
+[decrease compile time](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00047.html). He writes:
+
+> This implementation now searches for pages in the order: inactive/external,
+> inactive/internal, active/external and active/internal as suggested by Samuel
+> (https://lists.gnu.org/archive/html/bug-hurd/2025-12/msg00034.html). The
+> performance improvement is considerable. A test case involving 3 instances of
+> g++ compiling C++ template code (MatrixSine.cpp from libeigen-dev) uses
+> sufficient memory on a 4GB machine to require around 500MB of swap. This test
+> takes about 11 minutes with previous gnumach version (using a virtual machine)
+> but 3 minutes with this alteration. I have not been able to complete this test
+> on a 64 bit Hurd 'real hardware' installation with previous gnumach but the
+> compilation does complete with this patch after about 10 minutes
+
+João Pedro Malhado updated our
+[alternative hurd installation documentation page](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00035.html).
+I think it's pretty cool, that using a Debian GNU/Linux computer, one can install
+the Hurd via mmdebstrap.
+
+We also now have some people running the `x86_64` hurd port on
+[real hardware](https://lists.gnu.org/archive/html/bug-hurd/2025-10/msg00001.html).
+
+Some time ago, Milos Nikic, implemented a
+[metadata journal for ext2fs](https://lists.gnu.org:443/archive/html/bug-hurd/2025-08/msg00040.html).
+It has not been commited to `libdiskfs`, and it is a
+[different design from ext3](https://lists.gnu.org:443/archive/html/bug-hurd/2025-07/msg00048.html).
+He writes:
+
+> This patch introduces a working implementation that captures metadata changes,
+> writes them to a CRC32-protected journal file, and replays them during early
+> boot—before fsck runs—allowing us to correct inconsistencies proactively.
+>
+> I'm now using this system routinely without issues, and I believe it already
+> provides value for users.
+
+Some people are mentioning on other news channels that Debian is considering
+requiring rust for apt. We just want to mention that rust was ported to the Hurd,
+so while there might be some challenges in getting a "rusted" apt working on the Hurd,
+we do not forsee any
+[unsurmountable problems](https://lists.gnu.org:443/archive/html/bug-hurd/2025-11/msg00014.html).
+
+In other rust news, apparently the crate `uzers-rs` has recently been built with
+[Hurd support](https://lists.gnu.org:443/archive/html/bug-hurd/2025-12/msg00020.html). Apparently,
+this is quite a commonly used crate, which should help more rust code work on the Hurd.
+
+
+---
+
+The **GNU Hurd** is the GNU project's replacement for the Unix kernel. It is a
+collection of servers that run on the Mach microkernel to implement file
+systems, network protocols, file access control, and other features that are
+implemented by the Unix kernel or similar kernels (such as Linux). [[More
+detailed|hurd/documentation]].
+
+**GNU Mach** is the microkernel upon which a GNU Hurd system is based. It
+provides an Inter Process Communication (IPC) mechanism that the Hurd uses to
+define interfaces for implementing in a distributed multi-server fashion the
+services a traditional operating system kernel provides. [[More
+detailed|microkernel/mach/gnumach]].
+
+"""]]