Security updates have been issued by openSUSE (libetpan, libqt4, lilypond, otrs, and perl-DBI), Red Hat (kernel-rt), Slackware (seamonkey), SUSE (grafana, libmspack, openldap2, ovmf, pdns, rubygem-actionpack-5_1, and samba), and Ubuntu (debian-lan-config, ldm, libdbi-perl, and netty-3.9).
Python 3.9.0rc2 was released on September 17, with the final version scheduled for October 5, roughly a year after the release of Python 3.8. Python 3.9 will come with new operators for dictionary unions, a new parser, two string operations meant to eliminate some longstanding confusion, as well as improved time-zone handling and type hinting. Developers may need to do some porting for code coming from Python 3.8 or earlier, as the new release has removed several previously-deprecated features still lingering from Python 2.7.
The functiontracer (ftrace) subsystem has become an essential part of the kernel'sintrospection tooling. Like many kernel subsystems, ftrace uses a ring buffer toquickly communicate events to user space; those events include a timestamp toindicate when they occurred. Until recently, the design of the ring bufferhas led to the creation of inaccurate timestamps when events are generatedfrom interrupt handlers. That problem has now been solved; read on for anin-depth discussion of how this issue came about and the form of itssolution.
Linux Journal has returnedunder the ownership of Slashdot Media. "As Linux enthusiasts and long-time fans of Linux Journal, we were disappointed to hear about Linux Journal closing its doors last year. It took some time, but fortunately we were able to get a deal done that allows us to keep Linux Journal alive now and indefinitely. It's important that amazing resources like Linux Journal never disappear."
Firefox 81.0 is out. This version allows you to control media from thekeyboard or headset, introduces the Alpenglow theme, adds ArcoForm support tofill in, print, and save supported PDF forms, and more. See the release notesfor details.
Security updates have been issued by Mageia (mysql-connector-java), openSUSE (chromium, curl, libqt4, and singularity), Red Hat (bash and kernel), SUSE (python-pip and python3), and Ubuntu (busybox, ceph, freeimage, libofx, libpam-tacplus, linux, linux-aws, linux-aws-hwe, linux-azure, linux-azure-4.15, linux-gcp, linux-gcp-4.15, linux-gke-4.15, linux-hwe, linux-oem, linux-oracle, linux-raspi2, linux-snapdragon, linux, linux-azure, linux-gcp, linux-oracle, novnc, and tnef).
Kees Cook catchesup with the security-related changes in the 5.7 kernel."The kernel’s Linux Security Module (LSM) API provide a way to writesecurity modules that have traditionally implemented various MandatoryAccess Control (MAC) systems like SELinux, AppArmor, etc. The LSM hooks arenumerous and no one LSM uses them all, as some hooks are much morespecialized (like those used by IMA, Yama, LoadPin, etc). There was not,however, any way to externally attach to these hooks (not even through aregular loadable kernel module) nor build fully dynamic security policy,until KP Singh landed the API for building LSM policy using BPF. With this,it is possible (for a privileged process) to write kernel LSM hooks in BPF,allowing for totally custom security policy (and reporting)."
The 5.9-rc6 kernel prepatch is out."The one thing that does show up in the diffstat is the softscrollremoval (both fbcon and vgacon), and there are people who want to savethat, but we'll see if some maintainer steps up. I'm not willing toresurrect it in the broken form it was in, so I doubt that will happenin 5.9, but we'll see what happens."
Andrew "bunnie" Huang has announced a newproject called "Precursor"; it is meant to be a platform for makers tocreate interesting new devices. "Precursor is unique in the opensource electronics space in that it’s designed from the ground-up to becarried around in your pocket. It’s not just a naked circuit board withconnectors hanging off at random locations: it comes fully integrated—witha rechargeable battery, a display, and a keyboard—in a sleek, 7.2 mm(quarter-inch) aluminum case." You can't get one yet, but thecrowdfunding push starts soon.
The discussion started out as a straightforwardpatch set from Thomas Gleixner making a minor change to how preemptioncounting is handled. The resulting discussion quickly spread out to covera number of issues relevant to core-kernel development in surprisingly fewmessages; each of those topics merits a quick look, starting with how thepreemption counter itself works. Sometimes a simple count turns out to notbe as simple as it seems.
James Bottomley has put together adetailed recounting of what it took to get IPv6 fully working on hisnetwork. "One of the things you’d think from the above is that IPv6always auto configures and, while it is true that if you simply plug yourlaptop into the ethernet port of a cable modem it will just automaticallyconfigure, most people have a more complex home setup involving a router,which needs some special coaxing before it will work. That means you needto obtain additional features from your ISP using special DHCPv6requests."
Security updates have been issued by Arch Linux (chromium and netbeans), Oracle (mysql:8.0 and thunderbird), SUSE (rubygem-rack and samba), and Ubuntu (apng2gif, gnupg2, libemail-address-list-perl, libproxy, pulseaudio, pure-ftpd, samba, and xawtv).
Greg Kroah-Hartman has announced the release of the 5.8.10, 5.4.66, and 4.19.146 stable kernels. They containimportant fixes throughout the tree and users should upgrade.
The GNOME Project has announced a change to its version-numbering scheme;the next release will be "GNOME 40"."After nearly 10 years of 3.x releases, the minor version number isgetting unwieldy. It is also exceedingly clear that we're not going to bumpthe major version because of technological changes in the core platform,like we did for GNOME 2 and 3, and then piling on a major UX change on topof that. Radical technological and design changes are too disruptive formaintainers, users, and developers; we have become pretty good at iteratingdesign and technologies, to the point that the current GNOME platform, UI,and UX are fairly different from what was released with GNOME 3.0, whilestill following the same design tenets."
The kernel contains a wide variety of locking primitives; it can be hard tostay on top of all of them. So even veteran kernel developers might beforgiven for being unaware of the "seqcount latch" lock type or its use.While this lock type has existed in the kernel for several years, it isonly being formalized with a proper type declaration in 5.10. So thisseems like a good time to look at what these locks are and howthey work.
Security updates have been issued by Fedora (dotnet3.1, kernel, mbedtls, and python35), Mageia (libraw), openSUSE (mumble), SUSE (libsolv, libzypp, and perl-DBI), and Ubuntu (libdbi-perl, libphp-phpmailer, mcabber, ncmpc, openssl, openssl1.0, qemu, samba, storebackup, and util-linux).
As the PHP project nears its 8.0 release, which is currently slated for late November, there are a number of interesting things to report from its development mailing list. For one, the syntax of the attributes feature has finally been settled on after an acrimonious debate largely over the minutiae of the voting process. In addition, some releases were made and a new proposal to add any() and all() as core library functions was discussed.
The pandemic has changed many things in our communities, even though distancehas always played a big role in free software development. Annual in-persongatherings for conferences and the like are generally paused at the moment,but even after travel and congregating become reasonable again,face-to-face meetings may be less frequent. There are both positives andnegatives to that outcome, of course, but some rethinking will be in orderif that comes to pass. The process of key signing is something that may needto change as well; the Debian project, which uses signed keys,has been discussing the subject.
Version 3.38 of the GNOME desktop environment is out. "This release brings a new Welcome tour, improved grouping and reorderingof applications in the overview, better fingerprint enrollment, deepersystemd integration, and more." See the releasenotes for details.
Security updates have been issued by Fedora (libssh, python35, and xen), Oracle (kernel), Red Hat (librepo and mysql:8.0), SUSE (perl-DBI), and Ubuntu (Apache Log4j, Apache XML-RPC, bsdiff, libdbi-perl, luajit, milkytracker, OpenJPEG, ruby-loofah, and ruby-websocket-extensions).
The BPF virtual machine is beingused ever more widely in the kernel, but it has not been a target for GCC until recently. BPF is currently generated using the LLVMcompiler suite.Jose E. Marchesi gave a pair of presentations as part of the GNU Toolstrack at the 2020 LinuxPlumbers Conference (LPC) that provided attendees with a look at theBPF for GCC project, which started around ayear ago. It has made some significant progress, but there is, of course, more to do.
Moment.js, the de facto standard JavaScript library for date and time manipulation, has announced that "we would like to discourage Moment from being used in new projects going forward." The project cited multiple reasons for the recommendation. The first is that moment objects are mutable; another is the unnecessarily large size of the library when compared to other internationalization and time-zone support options available to modern browsers. According to the post, "we now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done." The project offers multiple recommendations of alternative options, including "the evolution of Moment", Luxon, authored by long-time Moment.js contributor Isaac Cambron.
Security updates have been issued by CentOS (dovecot), Debian (gnome-shell and teeworlds), Mageia (libetpan and zeromq), openSUSE (libxml2), Red Hat (chromium-browser and librepo), SUSE (compat-openssl098, firefox, kernel, openssl, and shim), and Ubuntu (gupnp).
Tasklets offer a deferred-execution method in the Linux kernel; theyhave been available since the 2.3 development series. They allow interrupthandlers to schedule further work to be executed as soon as possible afterthe handler itself. The tasklet API has its shortcomings, but it has stayedin place while other deferred-execution methods, including workqueues, havebeen introduced. Recently, Kees Cook posted a security-inspired patchset (also including work from Romain Perier) to improve the taskletAPI. This change is uncontroversial, but it provoked a discussion thatmight lead to the removal of the tasklet API in the (not so distant)future.
The 5.9-rc5 kernel prepatch is out fortesting. "So aside from the smoke from the fires, and a performanceregression I'm still looking at, things look normal."
In 2018, three former GnuPG developers began work on Sequoia, a new implementation of OpenPGP in Rust. OpenPGP is an open standard for data encryption, often used for secure email; GnuPG is an implementation of that standard. The GPLv2-licensed Sequoia is heading toward version 1.0, with a handful of issues remaining to be addressed. The project's founders believe that there is much to be desired in GnuPG, which is the de facto standard implementation of OpenPGP today. They hope to fix this with a reimplementation of the specification using a language with features that will help protect users from common types of memory bugs.
Security updates have been issued by Debian (python-pip), Fedora (kernel, libX11, and xen), openSUSE (go1.14), Oracle (libcroco, php:7.3, and postgresql:10), Red Hat (chromium-browser and httpd:2.4), and SUSE (gimp, golang-github-prometheus-prometheus, kernel, libxml2, pdsh, slurm_20_02, slurm, slurm_18_08, and tomcat).
In its early days, the Android project experienced a high-profiledisconnect with the kernel community. That situation has since improvedconsiderably, but there are stilldifferences between Android kernels and the mainline. As a result, it isnot possible to run Android on a vanilla kernel. That situation continuesto improve, though; much evidence to that effect was on display during theAndroid microconference at the 2020 Linux Plumbers Conference.Several sessions there showed the progress that is being made towardunifying the Android and mainline kernels — and the places where there isstill some work to be done.
Security updates have been issued by Arch Linux (ark, gnupg, go, opendmarc, and python-django), Debian (libxml2), Gentoo (chromium), Oracle (librepo and thunderbird), Red Hat (dovecot and httpd:2.4), SUSE (avahi, kernel, and openldap2), and Ubuntu (xorg-server).
Unlike many of the previous gatherings of the Linux realtime developers, theirmicroconference at the virtual 2020 Linux PlumbersConference had a different feel about it. Instead of being about when and how to get thefeature into the mainline, the microconference had two sessions that looked at whathappens after the realtime patches are upstream. That has not quite happenedyet, but is likely for the 5.10 kernel, so the developers werelooking to the future of the stable realtime trees and, relatedly, plansfor continuous-integration (CI) testing for realtime kernels.
BPF is, of course, the language used fornetwork (and other) customization in the Linux kernel, but some people have been using the Lua language for the networking side of thatequation. Two developers from Ring-0Networks, Lourival Vieira Neto and Victor Nogueira, came to the virtualNetdev 0x14 topresentthat work. It consists of a framework to allow the injection of Lua scriptsinto the running kernel as well as two projects aimed at routers, oneof which is deployed on 20 million devices.
Security updates have been issued by Debian (grunt), Fedora (ansible and geary), openSUSE (firefox, gettext-runtime, python-Flask-Cors, and thunderbird), Oracle (firefox and thunderbird), Red Hat (.NET Core 3.1), SUSE (kernel and libjpeg-turbo), and Ubuntu (gnutls28 and libx11).
Android 11 has beenreleased with the source pushed to the Android Open Source Project (AOSP). "For developers, Android 11 has a ton of new capabilities. You’ll want to check out conversation notifications, device and media controls, one-time permissions, enhanced 5G support, IME transitions, and so much more. To help you work and develop faster, we also added new tools like compatibility toggles, ADB incremental installs, app exit reasons API, data access auditing API, Kotlin nullability annotations, and many others."
Alyssa Rosenzweig looksat getting the ExposureNotifications System protocol, developed by Apple and Google forfacilitating COVID-19 contact tracing on Android and iOS phones, running onGNU/Linux. "All in all, we end up with a Linux implementation ofExposure Notifications functional in Ontario, Canada. What’s next? Perhapssupporting contact tracing systems elsewhere in the world – patcheswelcome." The source code for liben isavailable "for any one who dares go near".
The GStreamer team has announceda major feature release of GStreamer. "The 1.18 release series addsnew features on top of the previous 1.16 series and is part of the API andABI-stable 1.x release series of the GStreamer multimediaframework." There is a lengthy list of highlights in the announcementand more details in the release notes.
The kernel does not have just one system call to rename a file; instead,there are three of them: rename(),renameat(), and renameat2(). Each was added when theprevious one proved unable to support a new feature. A similar story hasplayed out with a number of system calls: a feature is needed that doesn'tfit into the existing interfaces, so a new one is created — again. At the2020 Linux Plumbers Conference,Christian Brauner and Aleksa Sarai ran a pair of sessions focused on thecreation of future-proof system calls that can be extended when the needfor new features arises.
Back in 2014, a Raspberry Pi enthusiast by the name of Michael Teeuw shared his build of a "magic mirror" with the world in a six-part series. The system consisted of a Raspberry Pi and monitor running a web browser in kiosk mode, with a web server that provided a dashboard interface — all stored in a custom-built case with a one-way mirror. Since his post, others around the world have built these devices for their home (including myself), forming both a community and an interesting open-source project. The recent release of MagicMirror (MM2) version 2.12.0 gives us an opportunity to learn more about where the project started and where it is today.
Security updates have been issued by Debian (ark, netty, netty-3.9, qemu, squid3, and xorg-server), Fedora (chromium), Gentoo (dovecot and gnutls), Mageia (ansible, postgresql, and python-rsa), openSUSE (curl, freerdp, libX11, php7, squid, and xorg-x11-server), Oracle (kernel), Red Hat (thunderbird), Slackware (gnutls), and SUSE (firefox, kernel, and thunderbird).
The 5.9-rc4 kernel prepatch is out fortesting. "So I certainly can't claim that things have calmed down,but hopefully this was pretty much it. Knock wood."
The Free Software Foundation (FSF) has announcedthat nominations are open, until October 28, for the Free Software Awards. Winners willbe announced at the annual LibrePlanet conference. "Youmight know of a contributor or organization who has done significant anduser-empowering work on free software. We invite you to take a moment toshow them (and tell us) that you care, by nominating them for an award inone of three categories: the Award for the Advancement ofFree Software, the Awardfor Projects of Social Benefit, or the Award for Outstanding NewFree Software Contributor. Don't assume that someone else will nominatethem -- too often, everyone assuming someone else will express theappreciation means that it never happens. As taking initiative and speakingup for the community are important parts of free software, why not take thetime yourself to make sure your voice is heard?"
On September 1, the Linux From Scratch (LFS) project announced the release of version 10.0 of LFS along with Beyond Linux From Scratch (BLFS). LFS is "a project that provides you with step-by-step instructions for building your own customized Linux system entirely from source"; BLFS picks up where LFS leaves off. Both books are available online either with or without systemd: LFS System V, LFS systemd, BLFS System V, and BLFS systemd. "The LFS release includes updates to glibc-2.31, and binutils-2.34. A total of 35 packages have been updated. A new package, zstd-1.4.4, has also been added. Changes to text have been made throughout the book. The Linux kernel has also been updated to version 5.5.3.The BLFS version includes approximately 1000 packages beyond the base Linux From Scratch Version 9.1 book. This release has over 840 updates from the previous version in addition to numerous text and formatting changes."
The 2020 Linux PlumbersConference (LPC) was meant to be held in Halifax, Nova Scotia, Canada at theend of August. As it happens, your editor was on the organizing committeefor that event and thus got a close view of what happens when one's hopesfor discussing memory-management changes on the Canadian eastern seaboardbecome one of the many casualties of an ongoing pandemic. TransformingLPC into a successful online experience was a lot of work, but the resultsmore than justified the effort. Read on for some notes and thoughts fromthe experience of making LPC happen in 2020.