Welcome to LWN.net
LWN.net is a reader-supported news site dedicated to producing the best coverage from within the Linux and free software development communities. See the LWN FAQ for more information, and please consider subscribing to gain full access and support our activities.
[$] LWN.net Weekly Edition for March 9, 2023
Posted Mar 9, 2023 1:28 UTC (Thu)The LWN.net Weekly Edition for March 9, 2023 is available.
Inside this week's LWN.net Weekly Edition
- Front: Goodbye deltaRPMs; SCO lawsuit; Rust APIs in the kernel; 6.3 Merge window; BTHome.
- Briefs: Linux 6.3-rc1; Apple graphics driver in Rust; Flathub in 2023; Samba 4.18; Y2038 and utmp; Quotes; ...
- Announcements: Newsletters, conferences, security updates, patches, and more.
[$] Removing support for DeltaRPMs in Fedora
Way back in 2009, we looked at the presto
plugin for yum, which added support for DeltaRPMs to Fedora. That package
format allows just the binary differences (i.e. the delta) between an
installed RPM and its update to be transmitted, which saves network
bandwidth; the receiving system then
creates the new RPM from those two pieces before installing it. Support
for DeltaRPMs was eventually added to the distribution by default, though
the feature
has never really lived up to expectations—and hopes. Now, it would seem
that Fedora is ready to, in the words of project leader Matthew Miller,
"give DeltaRPMs a
sad, fond farewell
".
[$] BTHome: An open standard for broadcasting sensor data
Many wireless sensors broadcast their data using Bluetooth Low Energy (BLE). Their data is easy to receive, but decoding it can be a challenge. Each manufacturer uses its own format, often tied to its own mobile apps. Integrating all of these sensors into a home-automation system requires a lot of custom decoders, which are generally developed by reverse-engineering the protocols. The goal of the BTHome project is to change this: it offers a standardized format for sensors to broadcast their measurements using BLE. BTHome is supported by the Home Assistant home-automation software and by a few open-firmware and open-hardware projects.
[$] The rest of the 6.3 merge window
Linus Torvalds released 6.3-rc1 and closed the 6.3 merge window as expected on March 5. By that time, 12,717 non-merge commits (and 848 merges) had found their way into the mainline kernel; nearly 7,000 of those commits came in after the first-half merge-window summary was written. The second half of the 6.3 merge window was thus a busy time, with quite a bit of new functionality landing in the mainline.
[$] The SCO lawsuit, 20 years later
On March 7, 2003, a struggling company called The SCO Group filed a lawsuit against IBM, claiming that the success of Linux was the result of a theft of SCO's technology. Two decades later, it is easy to look back on that incident as a somewhat humorous side-story in the development of Linux. At the time, though, it shook our community to its foundations. It is hard to overestimate how much the community we find ourselves in now was shaped by a ridiculous lawsuit 20 years ago.
[$] Kernel time APIs for Rust
While the 6.3 kernel has gained more support for the Rust language, it still remains true that there is little that can be done in Rust beyond the creation of a "hello world" module. That functionality was already available in C, of course, with a level of safety similar to what Rust can provide. Interest is growing, though, in merging actually useful modules written in Rust; that will require some more capable infrastructure than is currently present. A recent discussion on the handling of time values in Rust demonstrates the challenges — and opportunities — inherent in this effort.
LWN.net Weekly Edition for March 2, 2023
Posted Mar 2, 2023 0:40 UTC (Thu)The LWN.net Weekly Edition for March 2, 2023 is available.
Inside this week's LWN.net Weekly Edition
- Front: Python packaging tools; 6.3 Merge window; Red-black trees for BPF; Filesystem-image compatibility; Binary-format tools.
- Briefs: Linux-on-M1 update; Mutt fix; Godot 4; Rust keyword generics; Quotes; ...
- Announcements: Newsletters, conferences, security updates, patches, and more.
Python packaging and its tools
The Python-packaging discussions continued in January and February; they show no sign of abating in March either. This time around, we look (again) at tools for packaging, including a brand new Rust-based entrant. There is also a proposal to have interested parties create Python Enhancement Proposals (PEPs) for packaging solutions that would be judged by a panel of PEP delegates in order to try to choose something that the whole community can rally around—without precluding the existence of other options. As always, it is all a difficult balancing act.
Some useful tools for binary formats
Linux users often work with text files; tools like grep, awk, and sed are standard utilities in their toolbox. However, these tools fall short when trying to extract or edit data from files in a binary format, analyze corrupt media files, or for parsing a binary data format. FOSDEM 2023 in Brussels had a whole binary tools devroom dedicated to open-source programs that deal with binary data.
Red-black trees for BPF programs
Most of the kernel's code is written in C and intended to be run directly on the underlying hardware. That situation is changing in a few ways, though; one of those is the ability to write kernel code for the BPF virtual machine. The 6.3 kernel release will include a new API making the red-black tree data structure available to BPF programs. Beyond being an interesting feature in its own right, this new API shows how BPF is bringing a different approach to kernel programming — and to the C language in general.
Samba 4.18.0 released
Version 4.18 of the Samba interoperability suite is out. Changes include some significant performance improvements, better error messages, and more; click below for the details.
a2ps 4.15 released
Version 4.15 of the "anything to PostScript" filter a2ps has been released
— the first release since 2007.
"This release contains few user-visible changes. It does however
contain a lot of changes “under the hood”: code clean-up,
etc. Therefore, it’s likely that there are new bugs.
"
Security updates for Wednesday
Security updates have been issued by Debian (apr), Fedora (c-ares), Oracle (curl, kernel, pesign, samba, and zlib), Red Hat (curl, gnutls, kernel, kernel-rt, and pesign), Scientific Linux (kernel, pesign, samba, and zlib), SUSE (libX11, python-rsa, python3, python36, qemu, rubygem-rack, xorg-x11-server, and xwayland), and Ubuntu (libtpms, linux-ibm, linux-raspi, linux-raspi, python3.7, python3.8, and sofia-sip).
The initial posting of the Apple AGX graphics driver
Asahi Lina has posted an initial version of a Rust-based driver for Apple AGX graphics processors; the posting includes a fair amount of Rust infrastructure for graphics drivers in general.
While developing the driver, I tried to make use of Rust's safety and lifetime features to provide not just CPU-side safety, but also partial firmware-ABI safety. Thanks to this, it has turned out to be a very stable driver even though GPU firmware crashes are fatal (no restart capability, need to reboot!) and the FW/driver interface is a huge mess of unsafe shared memory structures with complex pointer chains.
McQueen: Flathub in 2023
The Flathub organization (in the form of Robert McQueen) has posted a lengthy update on the state of Flathub and its plans for the coming year.
So far, the GNOME Foundation has acted as an incubator and legal host for Flathub even though it’s not purely a GNOME product or initiative. Distributing software to end users along with processing and forwarding payments and donations also has a different legal profile in terms of risk exposure and nonprofit compliance than the current activities of the GNOME Foundation. Consequently, we plan to establish an independent legal entity to own and operate Flathub which reduces risk for the GNOME Foundation, better reflects the independent and cross-desktop interests of Flathub, and provides flexibility in the future should we need to change the structure.
Security updates for Tuesday
Security updates have been issued by Debian (kopanocore), Fedora (golang-github-projectdiscovery-chaos-client, rust-sequoia-octopus-librnp, rust-sequoia-sop, rust-sequoia-sq, and usd), Oracle (libjpeg-turbo and pesign), Red Hat (kernel, kernel-rt, kpatch-patch, osp-director-downloader-container, pesign, rh-mysql80-mysql, samba, and zlib), SUSE (mariadb), and Ubuntu (fribidi, gmp, linux, linux-aws, linux-kvm, linux-lts-xenial, linux-azure, linux-azure-4.15, linux-kvm, linux-raspi2, linux-snapdragon, linux-raspi, nss, python3.6, rsync, systemd, and tiff).
Three Questions and Answers: Rust for Linux (Heise)
Heise interviews Miguel Ojeda about the Rust-for-Linux project.
The first drivers (and the abstractions supporting them) that will start to be upstreamed are likely to be the Asahi Linux's GPU driver, Android's Binder and the NVMe driver. These are all non-trivial and will set the example for future Rust kernel abstractions and drivers.
Security updates for Monday
Security updates have been issued by Debian (apache2, libde265, libreswan, spip, syslog-ng, and xfig), Fedora (edk2, libtpms, python-django3, stb, sudo, vim, and xen), Red Hat (libjpeg-turbo and pesign), SUSE (kernel, python36, samba, and trivy), and Ubuntu (linux, linux-aws, linux-aws-5.4, linux-azure, linux-azure-5.4, linux-gcp, linux-gke, linux-gkeop, linux-hwe-5.4, linux-kvm, linux-oracle, linux-oracle-5.4, linux, linux-aws, linux-dell300x, linux-gcp-4.15, linux-oracle, linux-aws-hwe, linux-oracle, and linux-bluefield).
Kernel prepatch 6.3-rc1
The 6.3-rc1 kernel prepatch is out, and the merge window is closed for this development cycle.
And of course, smooth or not, now that the merge window is closed, we need to make sure it all *works*. We had a couple of exciting merges already, and I think the fallout from that got sorted out, but I'm sure there's more to come. Let's hope the calming-down period of 6.3 works as well as the merge window did... Knock wood.
Kukuk: Y2038, glibc and utmp/utmpx on 64bit architectures
Thorsten Kukuk demonstrates that we are not done with year-2038 problems yet.
The general statement so far has always been that on 64bit systems with a 64bit time_t you are safe with respect to the Y2038 problem. But glibc uses for compatibility with 32bit userland applications 32bit time_t in some places even on 64bit systems.
One of those places is the utmp file. The post includes a proposal for solving the problem by getting rid of utmp entirely.
