Quarterly test

From: Lorenzo Salvadore <salvadore_at_freebsd.org>
Date: Mon, 08 Aug 2022 21:28:01 UTC
FreeBSD Quarterly Status Report Second Quarter 2022

Here is the second quarterly report of 2022, with 26 reports included.

This quarter the quarterly team managed to publish the report much faster and,
hopefully, with much fewer mistakes. If however you notice some errors, please
report them so that we can correct them and also add some automatic checks in
our tools to prevent them in the future and stay as efficient as possible in
the pubblication process.

We would also like to remind you that if for any reason you need more time to
submit a quarterly report, the team will wait for you, but please warn us so
that we are aware that some report is still missing.

Many thanks to all those that have chosen to share their work with the FreeBSD
community through the quarterly reports.

Lorenzo Salvadore, on behalf of the status report team.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

A rendered version of this report is available here:
https://www.freebsd.org/status/report-2022-04-2022-06/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Table of Contents

  • FreeBSD Team Reports
      □ FreeBSD Core Team
      □ FreeBSD Foundation
      □ FreeBSD Release Engineering Team
      □ Cluster Administration Team
      □ Continuous Integration
      □ Ports Collection
  • Projects
      □ Linux compatibility layer update
      □ go on FreeBSD riscv64
      □ FreeBSD on Microsoft HyperV and Azure
  • Userland
      □ Ongoing work on LLDB multiprocess debugging support
      □ ZFS support in makefs(8)
      □ Base System OpenSSH Update
      □ pf status update
  • Kernel
      □ ENA FreeBSD Driver Update
      □ New Bluetooth® configuration daemon: blued
      □ OpenVPN DCO
      □ Wireless updates
      □ Shared page address randomization
  • Architectures
      □ NXP DPAA2 support
      □ Medium-sized superpages on arm64 and beyond
  • Documentation
      □ Documentation Engineering Team
  • Ports
      □ KDE on FreeBSD
      □ Elsewhere
      □ GCC: updating GCC_DEFAULT and other improvements
      □ Valgrind - Numerous bugfixes and updates for 13.1 / 14.0
      □ Pantheon desktop on FreeBSD
      □ Feature Complete Port of Intel’s igt-gpu-tools

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FreeBSD Team Reports

Entries from the various official and semi-official teams, as found in the
Administration Page.

FreeBSD Core Team

Contact: FreeBSD Core Team <core@FreeBSD.org>

The FreeBSD Core Team is the governing body of FreeBSD.

The twelfth FreeBSD Core Team was elected by active developers. The core.12
members are:

  • Baptiste Daroussin (bapt, incumbent)

  • Benedict Reuschling (bcr)

  • Ed Maste (emaste, incumbent)

  • Greg Lehey (grog)

  • John Baldwin (jhb)

  • Li-Wen Hsu (lwhsu)

  • Emmanuel Vadot (manu)

  • Tobias C. Berner (tcberner)

  • Mateusz Piotrowski (0mp)

On June 10th the outgoing core.11 and incoming core.12 teams held a handover
meeting, and the new Core Team was announced on Jun 18.

The current Core Team secretary, Muhammad Moinur Rahman (bofh), will step down
after the appointment of a new Core Team secretary and handover tasks
completes.

In this quarter, src commit bits of Kornel Dulęba (kd) and Dmitry Salychev
(dsl) have been approved.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FreeBSD Foundation

Links:
FreeBSD Foundation URL: https://www.FreeBSDFoundation.org
Technology Roadmap URL: https://FreeBSDFoundation.org/blog/technology-roadmap/
Donate URL: https://www.FreeBSDFoundation.org/donate/
Foundation Partnership Program URL: https://www.FreeBSDFoundation.org/
FreeBSD-foundation-partnership-program
FreeBSD Journal URL: https://www.FreeBSDFoundation.org/journal/
Foundation News and Events URL: https://www.FreeBSDFoundation.org/
news-and-events/

Contact: Deb Goodkin <deb@FreeBSDFoundation.org>

The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated to
supporting and promoting the FreeBSD Project and community worldwide. Donations
from individuals and corporations are used to fund and manage software
development projects, conferences, and developer summits. We also provide
travel grants to FreeBSD contributors, purchase and support hardware to improve
and maintain FreeBSD infrastructure, and provide resources to improve security,
quality assurance, and release engineering efforts. We publish marketing
material to promote, educate, and advocate for the FreeBSD Project, facilitate
collaboration between commercial vendors and FreeBSD developers, and finally,
represent the FreeBSD Project in executing contracts, license agreements, and
other legal arrangements that require a recognized legal entity.

Fundraising Efforts

First, I’d like to send a big thank you to everyone who gave a financial
contribution to our efforts. We are 100% funded by your donations, so every
contribution helps us continue to support FreeBSD in many ways, including some
of the work funded and published in this status report.

Our goal this year is to raise at a minimum $1,400,000 towards a spending
budget of around $2,000,000. As I write this report, we’ve brought in under
$200,000 towards that goal. So, we obviously need to step up our effort of
fundraising. It’s by far the hardest part of my job. I’d much prefer talking to
folks in our community on how we can help you, help create content to recruit
more users and contributors to the Project, and understand challenges and
painpoints that individuals and organizations have in using FreeBSD, so we can
help improve those areas. Asking for money is not on that list.

We support FreeBSD in five main areas. Software development is the largest area
we fund with six software developers on staff who step in to implement new
features, support tier 1 platforms, review patches, and fix issues. You can
find out some of the work we did under OS Improvements in this report. FreeBSD
Advocacy is another area that we support to spread the word about FreeBSD at
conferences, in presentations online and in-person, tutorials and how-to
guides. We purchase and support hardware for the FreeBSD infrastructure that
supports the work going on in the Project. Virtual and in-person events are
organized by the Foundation to help connect and engage community members to
share their knowledge and collaborate on projects. Finally, we provide legal
support to the Project when needed and protect the FreeBSD trademarks.

If you haven’t made a donation this year, please consider making one at https:/
/freebsdfoundation.org/donate/.

We also have a Partnership Program for larger commercial donors. You can find
out more at https://freebsdfoundation.org/our-donors/
freebsd-foundation-partnership-program/

OS Improvements

During the second quarter of 2022, 243 src, 62 ports, and 12 doc tree commits
were made that identified The FreeBSD Foundation as a sponsor. This represents
10.6, 0.7, and 4.5% of the total number of commits to each repository.

Sponsored Work

You can read about some of the Foundation-sponsored work in individual
quarterly report entries.

  • Base System OpenSSH Update

  • Ongoing work on LLDB multiprocess debugging support

  • Wireless Status

  • ZFS support in makefs

Other ongoing sponsored work is described here.

  • FreeBSD Wireguard Improvements

    The aim of the Wireguard project is to improve support for the FreeBSD Wirguard kernel module.
    The work by John Baldwin involved adapting the module to use FreeBSD's OCF rather than Wireguard's internal implementations.
    It also involved adding new ciphers and API support.
    The latest upstream release incorporates this work.

  • Openstack on FreeBSD

    OpenStack is a cloud system for different types of resources like virtual machines.
    However, OpenStack only unofficially supports FreeBSD as a guest system.
    That means users can spawn FreeBSD instances on the open cloud platform, but it is not currently possible run OpenStack on FreeBSD hosts.
    The goal of this project is port OpenStack components so that FreeBSD can function as an OpenStack host.

  • Bhyve Issue Support

    The Foundation recently signed a new contract for Byhve support.
    This contract will allow John Baldwin to dedicate time to Bhyve as issues arise, especially security issues.

  • Handbook Improvement Exploration

    Under sponsorship from the Foundation, Pau Amma wrapped up a mini-project to explore how the Handbook can be improved.
    A survey was sent out and the results will be shared soon.

Continuous Integration and Quality Assurance

The Foundation provides a full-time staff member and funds projects to improve
continuous integration, automated testing, and overall quality assurance
efforts for the FreeBSD project.

Supporting FreeBSD Infrastructure

The Foundation provides hardware and support for the Project. A new Australian
mirror was brought online by the Cluster Administration team. If you are a
FreeBSD user in Oceania or southeast Asia, please let us know if download
speeds for installer images and packages has improved.

With your donations, the Foundation purchased new hardware to repair two
PowerPC package builders, one for little endian packages (powerpc64le) and the
second for big endian packages (powerpc64, powerpc). The new hardware just
arrived at the data center and will be installed soon. Expect lots of PowerPC
packages in the near future.

FreeBSD Advocacy and Education

Much of our effort is dedicated to Project advocacy. This may involve
highlighting interesting FreeBSD work, producing literature and video
tutorials, attending events, or giving presentations. The goal of the
literature we produce is to teach people FreeBSD basics and help make their
path to adoption or contribution easier. Other than attending and presenting at
events, we encourage and help community members run their own FreeBSD events,
give presentations, or staff FreeBSD tables.

The FreeBSD Foundation sponsors many conferences, events, and summits around
the globe. These events can be BSD-related, open source, or technology events
geared towards underrepresented groups. We support the FreeBSD-focused events
to help provide a venue for sharing knowledge, working together on projects,
and facilitating collaboration between developers and commercial users. This
all helps provide a healthy ecosystem. We support the non-FreeBSD events to
promote and raise awareness of FreeBSD, to increase the use of FreeBSD in
different applications, and to recruit more contributors to the Project. We are
continuing to attend virtual events and planning the June 2022 Developer
Summit. In addition to attending and planning virtual events, we are
continually working on new training initiatives and updating our selection of
how-to guides to facilitate getting more folks to try out FreeBSD.

Check out some of the advocacy and education work we did last quarter:

  • Secured our booth and nonprofit sponsor status for All Things Open, October
    30-November 2, 2022, Raleigh, NC.

  • Finalized our booth and workshop at Scale 19x in Los Angeles, CA on July
    28-30. The FreeBSD workshop will be held Friday,Jul 29, 2022 and you can
    visit the Foundation at booth 502.

  • Confirmed our Silver Sponsorship of EuroBSDcon 2022, September 15-18,
    Vienna, Austria

  • Sponsored and helped organize the June 2022 FreeBSD Developer Summit, June
    16-17, 2022. Videos are available on the FreeBSD Project YouTube channel.

  • Celebrated FreeBSD Day June 19, 2022 and throughout the following week.

  • Secured our Friends level sponsorship of COSCUP, July30-31, Taiwan

  • Published the FreeBSD Foundation Spring 2022 Update

  • New Blog Posts

      □ Let’s Talk About Foundation Funding

      □ New Board Member Interview: Cat Allman

      □ Welcome FreeBSD Google Summer of Code Participants

      □ FreeBSD Foundation Work in the 13.1 Release

      □ Foundation Elects New Officers, Interviews Outgoing Board Members

      □ Help Us Celebrate FreeBSD Day All Week Long

  • New and Updated How-To and Quick Guides:

      □ Networking Basics: WiFi and Bluetooth

      □ Audio on FreeBSD

      □ Installing FreeBSD with VirtualBox (Mac/Windows) - Video Guide

      □ An Introduction to the FreeBSD Operating System - Video Guide

      □ Installing a Desktop Environment on FreeBSD - Video Guide

      □ Installing a Port on FreeBSD - Video Guide

We help educate the world about FreeBSD by publishing the professionally
produced FreeBSD Journal. As we mentioned previously, the FreeBSD Journal is
now a free publication. Find out more and access the latest issues at https://
www.FreeBSDfoundation.org/journal/.

You can find out more about events we attended and upcoming events at https://
www.FreeBSDfoundation.org/news-and-events/.

Legal/FreeBSD IP

The Foundation owns the FreeBSD trademarks, and it is our responsibility to
protect them. We also provide legal support for the core team to investigate
questions that arise.

Go to https://www.FreeBSDFoundation.org to find more about how we support
FreeBSD and how we can help you!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FreeBSD Release Engineering Team

Links:
FreeBSD 13.1-RELEASE schedule URL: https://www.freebsd.org/releases/13.1R/
schedule/
FreeBSD 13.1-RELEASE announcement URL: https://www.freebsd.org/releases/13.1R/
announce/
FreeBSD releases URL: https://download.freebsd.org/releases/ISO-IMAGES/
FreeBSD development snapshots URL: https://download.freebsd.org/snapshots/
ISO-IMAGES/

Contact: FreeBSD Release Engineering Team, <re@FreeBSD.org>

The FreeBSD Release Engineering Team is responsible for setting and publishing
release schedules for official project releases of FreeBSD, announcing code
freezes and maintaining the respective branches, among other things.

During the second quarter of 2022, the Release Engineering Team completed work
on the 13.1-RELEASE cycle. This is the second release from the stable/13
branch. Throughout the release cycle, three BETA builds and six RC (release
candidate) builds have occurred, moving the final release date from April 21,
2022 to May 16, 2022, as some last-minute issues were identified.

We thank all FreeBSD developers and contributors for testing the 13.1-RELEASE,
reporting problems, and being diligent with proprosed changes as the cycle
progressed.

Additionally throughout the quarter, several development snapshots builds were
released for the main, stable/13, and stable/12 branches.

Sponsor: Rubicon Communications, LLC ("Netgate") Sponsor: The FreeBSD
Foundation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Cluster Administration Team

Links:
Cluster Administration Team members URL: https://www.freebsd.org/administration
/#t-clusteradm

Contact: Cluster Administration Team <clusteradm@FreeBSD.org>

FreeBSD Cluster Administration Team members are responsible for managing the
machines the Project relies on to synchronise its distributed work and
communications. In this quarter, the team has worked on the following:

  • Installed a new mirror in Sydney, Australia hosted by IX Australia

  • Fixed CI cluster hardware failure

  • Set up a new internal monitoring system

  • Regular cluster-wide software upgrades

  • Regular support for FreeBSD.org user accounts

Work in progress:

  • Work with the PowerPC team to improve the package builders, universal, and
    reference machines.

  • Plan Hardware refresh, and fixing misc failures in each sites

  • Improve the package building infrastructure

  • Review the service jails and service administrators operation

  • Working with doceng@ to improve deployment of https://www.freebsd.org and
    https://docs.freebsd.org

  • Improve the web service architecture

  • Improve the cluster backup plan

  • Improve the log analysis system

We are looking for an additional full mirror site (five servers) in Europe. See
generic mirrored layout for our needs. Offers of additional single-server
mirrors (see tiny mirror) are always welcome too, especially in Europe.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Continuous Integration

Links:
FreeBSD Jenkins Instance URL: https://ci.FreeBSD.org
FreeBSD CI artifact archive URL: https://artifact.ci.FreeBSD.org
FreeBSD Jenkins wiki URL: https://wiki.freebsd.org/Jenkins
Hosted CI wiki URL: https://wiki.freebsd.org/HostedCI
3rd Party Software CI URL: https://wiki.freebsd.org/3rdPartySoftwareCI
Tickets related to freebsd-testing@ URL: https://preview.tinyurl.com/y9maauwg
FreeBSD CI Repository URL: https://github.com/freebsd/freebsd-ci
dev-ci Mailing List URL: https://lists.freebsd.org/subscription/dev-ci

Contact: Jenkins Admin <jenkins-admin@FreeBSD.org>
Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>
Contact: freebsd-testing Mailing List
Contact: IRC #freebsd-ci channel on EFNet

The FreeBSD CI team maintains the continuous integration system of the FreeBSD
project. The CI system checks the committed changes can be successfully built,
then performs various tests and analysis over the newly built results. The
artifacts from those builds are archived in the artifact server for further
testing and debugging needs. The CI team members examine the failing builds and
unstable tests and work with the experts in that area to fix the code or adjust
test infrastructure.

During the second quarter of 2022, we continued working with the contributors
and developers in the project to fulfill their testing needs and also keep
collaborating with external projects and companies to improve their products
and FreeBSD.

Important completed tasks:

  • Fixed the hardware failure issue of the CI cluster

Work in progress tasks:

  • Designing and implementing pre-commit CI building and testing (to support
    the workflow working group)

  • Designing and implementing use of CI cluster to build release artifacts as
    release engineering does

  • Testing and merging pull requests in the FreeBSD-ci repo

  • Simplifying CI/test environment setting up for contributors and developers

  • Setting up the CI stage environment and putting the experimental jobs on it

  • Organizing the scripts in freebsd-ci repository to prepare for merging to
    src repository

  • Updating documents on wiki

Open or queued tasks:

  • Collecting and sorting CI tasks and ideas

  • Setting up public network access for the VM guest running tests

  • Implementing use of bare-metal hardware to run test suites

  • Adding drm ports building tests against -CURRENT

  • Planning to run ztest tests

  • Adding more external toolchain related jobs

  • Improving maturity of the hardware lab and adding more hardware for testing

  • Helping more software get FreeBSD support in its CI pipeline (Wiki pages:
    3rdPartySoftwareCI, HostedCI)

  • Working with hosted CI providers to have better FreeBSD support

Please see freebsd-testing@ related tickets for more WIP information, and don’t
hesitate to join the effort!

Sponsor: The FreeBSD Foundation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Ports Collection

Links:
About FreeBSD Ports URL:https://www.FreeBSD.org/ports/
Contributing to Ports URL: https://docs.freebsd.org/en/articles/contributing/#
ports-contributing
FreeBSD Ports Monitoring URL: http://portsmon.freebsd.org/
Ports Management Team URL: https://www.freebsd.org/portmgr/
Ports Tarball URL: http://ftp.freebsd.org/pub/FreeBSD/ports/ports/

Contact: René Ladan <portmgr-secretary@FreeBSD.org>
Contact: FreeBSD Ports Management Team <portmgr@FreeBSD.org>

The Ports Management Team is responsible for overseeing the overall direction
of the Ports Tree, building packages, and personnel matters. Below is what
happened in the last quarter.

The number of ports is slightly above 30,000. The last quarter saw 9,137
commits by 151 committers on the "main" and 589 commits by 61 committers on the
"2022Q2" branch. At the time of writing, there are 2,700 open ports PRs of
which 682 are unassigned. Compared to the previous quarter, there was a slight
decrease in commit activity and a constant number of PRs. Note: Freshports
appears to overcount substantially. This quarter’s ports count was derived
differently and is not comparable with the previous quarter’s.

During the last quarter, portmgr welcomed back salvadore@ but also said goodbye
to seven ports committers due to lack of activity.

In its bi-weekly meetings, portmgr discussed the following topics: * the future
of ca_root_nss * feasibility of the base system providing certain .pc files *
ways to deal with incompatibilities in kernel module ports on minor version
upgrades of the base system

Following a discussion among developers, portmgr decided to grant all
documentation and source committers approval to fix any documentation-related
error in the Ports Tree which does not affect its functionality.

The following changes were made to the Ports Tree during 2022q2: * pkg got
updated to version 1.18.3, Firefox to version 102.0 and Chromium to version
103.0.50060.53 * Default versions of GCC, Lazarus, Python and Ruby got updated
to respectively 11 (powerpcspe keeps version 8), 2.2.2, 3.9, and 3.0. * Two new
USES were added, gstreamer to support ports based on GStreamer plugins and
pytest to help testing with pytest.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Projects

Projects that span multiple categories, from the kernel and userspace to the
Ports Collection or external projects.

Linux compatibility layer update

Contact: Dmitry Chagin <dchagin@FreeBSD.org> Contact: Edward Tomasz Napierala <
trasz@FreeBSD.org>

The goal of this project is to improve FreeBSD’s ability to execute unmodified
Linux binaries. Current support status of specific Linux applications is being
tracked at the Linux app status Wiki page.

Implementation of the Y2k38 Linux project is mostly finished; all '*_time64()'
system calls are committed.

The state of the arm64 Linux emulation layer was brought to the state of the
amd64 Linux emulation layer: i.e., implemented the vDSO, machine dependend
futexes, signals delivery.

The thread affinity system calls were modified to implement Linux semantics.

In total, over 50 bugs were fixed; glibc-2.35 tests suite reports less than 80
failed tests.

All changes in the Linux emulation layer are merged to the stable/13 branch.

Initial support for fancy Linux system call tracing has been added to
libsysdecode and kdump. There is ongoing work to make tracing more syscalls
work.

Sponsor: EPSRC (Edward’s work)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

go on FreeBSD riscv64

Links:
golang Home Page URL: https://github.com/golang/go
FreeBSD riscv64 github repo URL: https://github.com/MikaelUrankar/go/tree/
freebsd_riscv64
FreeBSD riscv64 golang issue URL: https://github.com/golang/go/issues/53466

Contact: Mikaël Urankar <mikael@FreeBSD.org>
Contact: Dmitri Goutnik <dmgk@FreeBSD.org>

Work has been done to port go on FreeBSD riscv64 which builds and passes all
run.bash tests, including cgo (tested under QEMU and on Unmatched). A pull
request is created upstream and the proposal has been added to the active
column of the proposals project and will be reviewed at the weekly proposal
review meetings.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

FreeBSD on Microsoft HyperV and Azure

Links:
Microsoft Azure article on FreeBSD wiki URL: https://wiki.freebsd.org/
MicrosoftAzure
Microsoft HyperV article on FreeBSD wiki URL: https://wiki.freebsd.org/HyperV

Contact: Microsoft FreeBSD Integration Services Team <bsdic@microsoft.com>
Contact: freebsd-cloud Mailing List
Contact: The FreeBSD Azure Release Engineering Team <releng-azure@FreeBSD.org>
Contact: Wei Hu <whu@FreeBSD.org>
Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>

The 13.1-RELEASE image on Azure Marketplace has been published.

Work in progress tasks:

  • Automating the image building and publishing process

  • Building and publishing ZFS-based images to Azure Marketplace

      □ The taks will be benefited by merging of ZFS support of makefs(8) and
        release(7)

          ☆ https://reviews.freebsd.org/D23334

          ☆ https://reviews.freebsd.org/D34426

          ☆ https://reviews.freebsd.org/D35248

  • Building and publishing Hyper-V gen2 VM images to Azure Marketplace

      □ Blocked by https://bugs.freebsd.org/264267

The above tasks are sponsored by The FreeBSD Foundation, with resources
provided by Microsoft.

Wei Hu and his colleagues in Microsoft are working on several tasks sponsored
by Microsoft:

  • Fixing booting issue on Hyper-V gen2 VM in Azure

      □ https://bugs.freebsd.org/264267

  • Porting Hyper-V guest support to aarch64

Open tasks:

  • Update FreeBSD related doc at https://docs.microsoft.com

  • Support FreeBSD in Azure Pipelines

  • Update Azure agent port to the latest version

  • Upstream local modifications of Azure agent

Sponsor: Microsoft for work by Wei Hu and others in Microsoft, and for
resources for the rest Sponsor: The FreeBSD Foundation for everything else

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Userland

Changes affecting the base system and programs in it.

Ongoing work on LLDB multiprocess debugging support

Links:
Moritz Systems Project Description URL: https://www.moritz.systems/blog/
multiprocess-support-for-lldb/
Progress Report 1 URL: https://www.moritz.systems/blog/
implementing-non-stop-protocol-compatibility-in-lldb/

Contact: Kamil Rytarowski <kamil@moritz.systems>
Contact: Michał Górny <mgorny@moritz.systems>

According to the upstream description, "LLDB is a next generation,
high-performance debugger. It is built as a set of reusable components which
highly leverage existing libraries in the larger LLVM Project, such as the
Clang expression parser and LLVM disassembler."

FreeBSD includes LLDB in the base system. The previous sponsored projects
improved LLDB, to make it a credible debugger for the base system, although it
still has a few limitations compared to the contemporary versions of GNU GDB.
This project started in April 2022. It aims to implement full support for
debugging multiple processes simultaneously.

At the start of the project, LLDB featured very limited support for
multiprocess debugging. The client featured support for debugging multiple
independent processes simultaneously via maintaining multiple connections to
different server instances. Thanks to our earlier work, the server was able to
process fork(2) and vfork(2) calls and either detach the newly forked child and
continue tracing the parent process, or detach the parent and follow the child
(equivalent to GDB’s follow-fork-mode setting).

Once the project is finished, LLDB will be able to trace an arbitrary number of
forked processes simultaneously (equivalent to GDB’s detach-on-fork off). Full
support for the multiprocess extension to the GDB Remote Serial Protocol will
be implemented, as well as partial support for the non-stop extension that will
enable multiple processes to be resumed and stopped independently.

Sponsor: The FreeBSD Foundation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ZFS support in makefs(8)

Links:
Mailing list post URL: https://lists.freebsd.org/archives/freebsd-hackers/
2022-May/001128.html
makefs(8) code review URL: link:https://reviews.freebsd.org/D35248 release(7)
code review URL: link:https://reviews.freebsd.org/D34426

Contact: Mark Johnston <markj@FreeBSD.org>

makefs(8) is a utility, originating in NetBSD, that creates file system images
entirely in userspace. It is a useful component of a toolchain to build virtual
machine (VM) images since it does not require any special privileges, unlike
the approach of formatting a character device, mounting the fresh file system,
and copying files onto it. Moreover, makefs can create reproducible images and
aims to minimize resource consumption. Currently, FreeBSD’s makefs can build
UFS, cd9660, and msdos (FAT) file system images.

Recent work enables the creation of ZFS images by makefs. This makes it easier
to build ZFS-based VM images. makefs' ZFS support includes the ability to
create multiple datasets, with each mapped to a directory in the input file
hierarchy. Many ZFS features are not supported however, as the implementation
provides only what is needed to get reproducible root pools.

Follow-up work enables the creation of ZFS-based VM and cloud images by the
release(7) framework, using this new makefs extension.

Sponsor: The FreeBSD Foundation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Base System OpenSSH Update

Links:
OpenSSH URL: https://www.openssh.com/
OpenSSH 8.9 release notes URL:https://www.openssh.com/txt/release-8.9[https://
www.openssh.com/txt/release-8.9]
OpenSSH 9.0 release notes URL:https://www.openssh.com/txt/release-9.0[https://
www.openssh.com/txt/release-9.0]

Contact: Ed Maste <emaste@freebsd.org>

OpenSSH, a suite of remote login and file transfer tools, was updated from
version 8.8p1 to 9.0p1 in the FreeBSD base system.

It has not yet been merged to the stable/13 and stable/12 branches. I
anticipate doing so in July.

NOTE: OpenSSH 9.0p1 switches scp(1) from using the legacy scp/rcp protocol to
using the SFTP protocol by default. The -O flag is available to use the
previous protocol instead.

Sponsor: The FreeBSD Foundation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

pf status update

Contact: Kristof Provost <kp@FreeBSD.org> Contact: Reid Linnemann <
rlinnemann@netgate.com>

Ethernet

pf recently grew support for filtering on Ethernet layer. See the 2021q2
pf_ethernet report.

Since then the Ethernet layer filtering has been extended with:

  • anchor support

  • ability to look into the layer 3 header, for matching with source/
    destination IP(v4/v6) addresses

  • table support for IP address matching

  • direct dispatch to dummynet

  • pass Ethernet layer packets directly to dummynet, rather than tagging the
    packets and relying on layer 3 to handle dummynet

Dummynet

pf recently started being able to use dummynet for packet scheduling. This
support has been extended and improved, and is now believed to be ready for
production.

One notable fix is that reply-to/route-to’d traffic is now subject to dummynet
scheduling as well.

Last match timestamp

pf now tracks when a rule was last matched. Similar to ipfw rule timestamps,
these timestamps internally are uint32_t snaps of the system "wall time" clock
in seconds. (See time(9).) The timestamp is CPU local and updated each time a
rule or a state is matched.

Sponsor: Rubicon Communications, LLC ("Netgate")

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Kernel

Updates to kernel subsystems/features, driver support, filesystems, and more.

ENA FreeBSD Driver Update

Links:
ENA README URL: https://github.com/amzn/amzn-drivers/blob/master/kernel/fbsd/
ena/README.rst

Contact: Michal Krawczyk <mk@semihalf.com>
Contact: Dawid Gorecki <dgr@semihalf.com>
Contact: Marcin Wojtas <mw@FreeBSD.org>

ENA (Elastic Network Adapter) is the smart NIC available in the virtualized
environment of Amazon Web Services (AWS). The ENA driver supports multiple
transmit and receive queues and can handle up to 100 Gb/s of network traffic,
depending on the instance type on which it is used.

Completed since the last update:

  • Upstream of the ENA driver v2.5.0, which included:

  • Improvement to the reset routine handling,

  • Extension of the timer service lifetime in order to be able to detect more
    hardware failures,

  • Fix logic for verifying the Tx request ID,

  • Fix IPv6 L4 checksum offload handling for the Tx,

  • Add NUMA awareness to the driver.

  • Internal review of the upcoming ENA driver release (v2.6.0), including:

  • Further reset handling improvements,

  • Code cleanup and style fixes,

  • Logging improvements,

  • Fix to the retrieval of the ENI metrics.

Work in progress:

  • Testing of the upcoming ENA driver release (v2.6.0).

Sponsor: Amazon.com Inc

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

New Bluetooth® configuration daemon: blued

Links:
blued git URL: https://git.lysator.liu.se/kempe/blued

Contact:
Mail: kempe@lysator.liu.se
IRC: kempe@libera.chat

Introduction

The blued utility provides an IPC interface that lets an unprivileged user
connect to and use Bluetooth devices in a user-friendly way and supports secure
simple pairing (public-key cryptography and if the device allows it
man-in-the-middle protection).

What is blued?

There are three parts to blued: a library, a daemon and a command line utility.
The library abstracts away bluetooth details, the daemon manages Bluetooth
devices and the command line utility lets users list or scan for Bluetooth
devices, pair with a device, or unpair from one. The command line utility
communicates with the daemon via a UNIX socket.

Unlike bthidd and hcsecd, blued supports secure simple pairing and provides an
IPC. To get a HID device to work, bthidd is still needed. A script is provided
to pair a Bluetooth device and appropriately configure bthidd so it just works
and reconnects without user intervention.

Once pairing has proven stable and bugs have been ironed out, the plan is to
integrate bthidd with/into blued in some way to have HID devices automatically
start functioning when paired without the use of an external script. A
long-term goal is to provide a graphical user interface that can list devices
and provide a simple one-click setup to connect them.

Installing and using blued v0.1

You need the optional src component installed in /etc/src.

First, make sure you have working Bluetooth drivers loaded as explained in the
FreeBSD handbook.

To test blued, fetch the blued v0.1 source code. Then compile it, patch your
FreeBSD kernel with the patches in kernel_patches, and recompile the hci module
as explained in README.

I have primarily tested blued on FreeBSD 12.3, but my patches applied cleanly
on 13.1 when I tested. I am not supplying a port at the moment, but it is
possible to run the software straight from the build directory or run "make
install" that will install all needed files. Both blued and bluecontrol use
capsicum and blued can be configured to drop its root privileges.

For more information, refer to the Running blued section of README.

Helping out

Testing

I have only tried this software with my own mouse and realise that a sample
size of one single bluetooth device is pretty small. I’m expecting issues and
am greatly looking forward to feedback from others!

In case of trouble, output from /var/log/debug.log and /var/log/messages as
well as a traffic dump from "hcidump -x" while trying to pair will help with
troubleshooting.

Contributing

If you want to get involved with the code and submit patches, you’re welcome to
visit the repository on Lysator’s Git.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

OpenVPN DCO

Links:
D34340 URL: D34340
OpenVPN wiki URL: OpenVPN wiki

Contact: Kristof Provost <kp@FreeBSD.org>

OpenVPN DCO (or Data Channel Offload) moves OpenVPN data packet processing into
the kernel.

Traditionally OpenVPN uses a tun(4) interface to transmit and receive packets.
In this setup received packets are received by the kernel, passed to the
OpenVPN application for decryption, then passed back into the kernel for
network stack processing. This requires several transitions between kernel- and
userspace, and naturally imposes a performance cost.

The new if_ovpn OpenVPN DCO offload driver performs the encryption/decryption
entirely within the kernel, improving performance.

Initial performance testing shows throughput improved from around 660Mbit/s to
around 2Gbit/s.

The userspace OpenVPN code also requires modification to use the new if_ovpn
offload driver. This is expected to be part of a future 2.6.0 OpenVPN release.

Sponsor: Rubicon Communications, LLC ("Netgate")

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Wireless updates

Links:
Intel iwlwifi status FreeBSD wiki page URL: https://wiki.freebsd.org/WiFi/
Iwlwifi Realtek rtw88 status FreeBSD wiki page URL: https://wiki.freebsd.org/
WiFi/Rtw88 Realtek rtw89 status FreeBSD wiki page URL: https://wiki.freebsd.org
/WiFi/Rtw89

Contact: Bjoern A. Zeeb <bz@FreeBSD.org>

The overall project aims to bring support for newer chipsets to FreeBSD
currently using LinuxKPI compat code backed by native net80211 and kernel code.
In addition the aim is to continue work towards supporting newer wireless
standards. During the second quarter 40 commits went into FreeBSD CURRENT. With
more users trying multiple drivers support time has also gone up.

An earlier version of the Intel iwlwifi-derived wireless driver shipped in
13.1-RELEASE bringing this work into a first FreeBSD release. The iwlwifi
driver and firmware were since updated in CURRENT and stable/13 again as part
of ongoing development. Changes in files shared with the upstream Intel Linux
version of the driver are now less than 400 lines. Lately a longer-standing
problem for older chipsets was (hopefully) solved allowing iwm(4)-supported
cards to work with iwlwifi(4) again after almost three months. The main focus
for the project until the end of the year will most exclusively be getting us
to contemporary speeds.

On April 1st, using the same LinuxKPI infrastructure built mostly with the
iwlwifi work, Realtek’s rtw88(4) driver got comitted into CURRENT. Due to an
issue with DMA the next weeks a workaround was developed and put into the tree
so users no longer have to patch the kernel. The driver still needs a tunable
set in loader.conf for machines with more than 4GB of physical memory. This
tunable allowed the driver to be merged to stable/13 in June followed by
further updates in CURRENT and stable/13. As the USB parts for rtw88 based
chipsets are prepared to be included in Linux, work has started (needing more
time) to prepare FreeBSD to be able to support the USB parts as well.

During the last months Realtek’s rtw89 has already been compiling and remains a
work in progress to run stably and associate before it can be enabled in
CURRENT.

Thanks to all the users for testing and reporting back, patiently waiting for
the next update, bugfix, or just a reply from me. It is a great pleasure to
work with you! Keep sending the bug reports to me, but remember that your
thanks should go to the FreeBSD Foundation for making most of this possible.

For the latest state of the development, please follow the freebsd-wireless
mailing list and check the wiki pages.

Sponsor: The FreeBSD Foundation

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Shared page address randomization

Links:
D35392 D35393 D35349

Contact: Kornel Duleba <mindal@semihalf.com>
Contact: Marcin Wojtas <mw@FreeBSD.org>

The shared page is an R/X page that is mapped into each process by the image
activator. It stores the signal trampoline, as well as other metadata e.g.
information needed to implement user space timecounters. Previously it was
mapped at the top of the process virtual address space. With the described
changes its address will be randomized. We plan to turn the feature on by
default for 64bit binaries, across all architectures. Currently the patches are
under review and await approval.

Sponsor: Stormshield

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Architectures

Updating platform-specific features and bringing in support for the new
hardware platform.

NXP DPAA2 support

Links
Change history
Tree

Contact: Dmitry Salychev <dsl@FreeBSD.org>
Contact: Bjoern A. Zeeb <bz@FreeBSD.org>

Some of the NXP SoCs (LX2160A, LS1088A) are shipped with DPAA2, the second
generation of the data path acceleration architecture. It allows to dynamically
configure and wire packet processing "objects" (DPNI for a network interface,
DPMAC for media access controller, etc.) together to form a network-on-a-chip.

During the last quarter the driver started working well enough to be used on
SolidRun' Honeycomb LX2 (ACPI test platform) and Traverse Technologies has
produced a FreeBSD preview for (their) Ten64 (used as FDT test platform).

The driver is still work-in-progress, but is getting close for a review to get
the first version into the tree for everyone to benefit from it.

WIP:

  • FDT MDIO support. FreeBSD currently lacks support for the SPF parts.

  • Driver resources de-allocation to unload dpaa2.ko properly.

  • Bug fixes and improvements.

TODO:

  • CPU affinity for DPIOs and DPNIs.

  • Cached memory-backed software portals.

  • Bottlenecks mitigation.

  • Further parts (DPSW, DCE, etc.) supported by the hardware.

Sponsor: Bare Enthusiasm :)
Sponsor: Traverse Technologies (providing Ten64 HW for testing)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Medium-sized superpages on arm64 and beyond

Contact: Eliot H. Solomon <ehs3@rice.edu>
Contact: Alan L. Cox <alc@rice.edu>

The 64-bit ARM architecture’s page table descriptor format contains a flag
called the Contiguous bit. This tells the MMU that it can cache an aligned,
physically contiguous group of 16 page table entries which have identical
permissions and attributes using only 1 TLB entry.

The Contiguous bit, as well as the conceptually similar Svnapot extension to
the RISC-V architecture, allows for the use of 64 KiB superpages. These
medium-sized superpages can bring to smaller memory objects the
address-translation speedup typically associated with more traditional 2 MiB
superpages.

This project focuses on bringing support for medium-sized superpages to
FreeBSD. So far, we have modified the arm64 pmap code to automatically utilize
64 KiB superpages by detecting physically contiguous page table entries and
promoting them using the Contiguous bit. Now, we are working to adapt the
kernel’s superpage reservation module to support 64 KiB reservations in
addition to the current 2 MiB ones. Adding medium-sized reservations will allow
the virtual memory system to explicitly allocate pieces of memory which fit the
requirements for superpage promotion, rather than just hoping that they occur
by chance.

Our goal is to accomplish this in a general way that makes it possible to
specify multiple arbitrary power-of-two reservation sizes, making it easier to
take advantage of hardware features on other architectures like Ryzen’s PTE
Coalescing, which transparently merges groups of 4 KiB page table entries into
medium-sized superpages.

Sponsor: Department of Computer Science, Rice University

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Documentation

Noteworthy changes in the documentation tree, manual pages, or new external
books/documents.

Documentation Engineering Team

Link: FreeBSD Documentation Project
Link: FreeBSD Documentation Project Primer for New Contributors
Link: Documentation Engineering Team

Contact: FreeBSD Doceng Team <doceng@FreeBSD.org>

The doceng@ team is a body to handle some of the meta-project issues associated
with the FreeBSD Documentation Project; for more information, see FreeBSD
Doceng Team Charter.

During the last quarter, Graham Perrin (grahamperrin@) and Pau Amma (pauamma@),
were granted documentation commit bits.

Several items are pending and in discussion:

  • Mirroring the Website and Documentation portal with the GeoDNS
    infrastructure of the project.

  • How to handle Trademarks in the documentation.

  • Remove outdated translations from the Website and Documentation portal.

FreeBSD Translations on Weblate

Link: Translate FreeBSD on Weblate
Link: FreeBSD Weblate Instance

Q2 2022 Status

  • 12 languages

  • 152 registered users (9 new users)

Languages

  • Chinese (Simplified) (zh-cn)

  • Chinese (Traditional) (zh-tw)

  • Dutch (nl)

  • French (fr)

  • German (de)

  • Indonesian (id)

  • Italian (it)

  • Norwegian (nb-no)

  • Persian (fa-ir)

  • Portuguese (pt-br)

  • Spanish (es)

  • Turkish (tr)

We want to thank everyone that contributed, translating or reviewing documents.

And please, help promote this effort on your local user group, we always need
more volunteers.

FreeBSD Website Revamp - WebApps working group

Contact: Sergio Carlavilla <carlavilla@FreeBSD.org>

Working group in charge of creating the new FreeBSD Documentation Portal and
redesigning the FreeBSD main website and its components. FreeBSD developers can
follow and join the working group on the FreeBSD Slack channel #wg-www21. The
work will be divided into four phases:

 1. Redesign of the Documentation Portal

    Create a new design, responsive and with global search. (Complete)

 2. Redesign of the Manual Pages on web

    Scripts to generate the HTML pages using mandoc. (Work in progress)

 3. Redesign of the Ports page on web

    Ports scripts to create an applications portal. (Work in progress)

 4. Redesign of the FreeBSD main website

    New design, responsive and dark theme. (Not started)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Ports

Changes affecting the Ports Collection, whether sweeping changes that touch
most of the tree, or individual ports themselves.

KDE on FreeBSD

Links:
KDE FreeBSD URL: https://freebsd.kde.org/
KDE Community FreeBSD URL: https://community.kde.org/FreeBSD

Contact: Adriaan de Groot <kde@FreeBSD.org>

The KDE on FreeBSD project packages the software from the KDE Community, along
with dependencies and related software, for the FreeBSD ports tree. The
software includes a full desktop environment called KDE Plasma (for both X11
and Wayland) and hundreds of applications that can be used on any FreeBSD
machine.

The KDE team (kde@) is part of desktop@ and x11@ as well, building the software
stack to make FreeBSD beautiful and usable as a daily-driver graphics-based
desktop machine. The notes below describe mostly ports for KDE, but also
include items of import to the entire desktop stack.

KDE Stack

KDE Gear releases happen each quarter, KDE Plasma updates once a month, and KDE
Frameworks have a new release each month as well. These (large) updates land
shortly after their upstream release and are not listed separately.

  • astro/kstars latest release 3.5.9.

  • deskutils/grantleetheme got an entry in UPDATING because of some unusual
    changes to the installed structure of the port.

  • deskutils/kalendar joined the KDE Gear releases.

  • devel/okteta updates to the binary (and octal and hexadecimal) data viewer
    and editor.

  • finance/kraft needed specific build-fixes for newer KDE Frameworks.

  • games/gcompris-qt expanded, new releases, and now supports more image
    formats (needed for some activities).

  • graphics/digikam no longer needs a SQL server during the build.

  • graphics/krita was updated to 5.0.5, likely the last 5.0 version.

  • math/labplot has a huge number of new features in recent releases, well
    worth looking at if you need any kind of data-plotting.

  • net-im/ruqola was updated. This is a Qt-styled Rocket chat application.

  • www/falkon joined the KDE Gear releases.

Related Applications

  • archivers/quazip was updated.

  • deskutils/semantik updated.

  • devel/py-qt5-pyqt updated so that the port now pulls in DBus as well. DBus
    is needed by nearly all desktop Qt applications, including those written in
    Python.

  • devel/qcoro had build issues on certain FreeBSD versions, resolved.

  • devel/qtcreator updated with each new release.

  • devel/qt5 had its infrastructure updated in ports so it does not produce
    strange error messages during de-installation.

  • graphics/ksnip and related libraries updated to recent releases.

  • Matrix clients Nheko (net-im/nheko) and Neochat (net-im/neochat) were
    updated following releases and library bumps.

  • x11/rsibreak updated; helps prevent injury while writing long quarterly
    reports.

Elsewhere

  • devel/appstream update supports more application-information.

  • devel/cmake prefers generic python3 over versioned-python3, if users have
    multiple python3 ports and lang/python3 installed.

  • devel/dbus updated.

  • graphics/poppler updated several times.

  • graphics/ImageMagick (both 6 and 7) updated several times.

  • multimedia/gstreamer updated.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

GCC: updating GCC_DEFAULT and other improvements

Links:
GCC Project URL: https://gcc.gnu.org
GCC 11 release series URL: https://gcc.gnu.org/gcc-11/

Contact: <toolchain@FreeBSD.org>
Contact: Gerald Pfeifer <gerald@pfeifer.com>
Contact: Lorenzo Salvadore <salvadore@FreeBSD.org>
Contact: Piotr Kubaj <pkubaj@FreeBSD.org>

  • salvadore@ worked on the upgrade of GCC_DEFAULT in Mk/
    bsd.default-versions.mk from 10 to 11, opening bug reports based on
    antoine@'s exp-runs and fixing some: many thanks to all those that helped
    with this task. The GCC_DEFAULT update from GCC 10 to GCC 11 has now been
    committed by gerald@ and happened in time for the next quarterly branch.
    https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258378

  • pkubaj@ switched GCC bootstrapping to use Link Time Optimization for GCC
    itself for GCC 11 and newer by introducing a new option enabled by default.
    Building with LTO_BOOTSTRAP enabled requires significant amounts of memory
    and time. How much resources are actually needed depends on your
    configuration (e.g. are you building from ports or with poudriere? What is
    your architecture?). To give an idea, a user reported needing 5 GiB of
    tmpfs, while in PR 265254 a need of about 130 GB of memory is estimated due
    to an excessive amount of processes spawning (see also https://gcc.gnu.org/
    bugzilla/show_bug.cgi?id=106328). Consider disabling LTO_BOOTSTRAP in favor
    of STANDARD_BOOTSTRAP (or disabling BOOTSTRAP altogether) in case that is a
    problem.

  • pkubaj@ also added lang/gcc12 and lang/gcc13-devel ports and updated lang/
    gcc9 to 9.5.

  • Help is still needed with these three changes to work through with upstream
    GCC (requires src expertise, not ports):

      □ upstreaming lang/gcc11/patch-gets-no-more

      □ upstreaming lang/gcc11/patch-arm-unwind-cxx-support

      □ https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256874

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Valgrind - Numerous bugfixes and updates for 13.1 / 14.0

Links
Valgrind Home Page URL: https://www.valgrind.org/
Valgrind News URL: https://www.valgrind.org/docs/manual/dist.news.html

Contact: Paul Floyd <pjfloyd@wanadoo.fr>

A quite significant number of bug fixes have been made to Valgrind on FreeBSD
over the past few months. In particular, the i386 version has largely 'caught
up' with its bigger brother amd64.

The devel/valgrind-devel port has been bumped up to 3.20.0.g20220612,1 which
includes all of the following changes. If you use Valgrind regularly please
swtch to valgrind-devel.

Here is a list of changes since the release of Valgrind 3.19.0 (which is the
version available with the devel/valgrind port).

  • incorrect signal resumption if a signal arrives when Valgrind is saving the
    carry flag for a syscall

  • fixed reading DWARF debuginfo from PT_LOADs generated by lld post version
    9, which splits the RW segment into two parts, this affects mainly shared
    libraries (.so files)

  • on i386 implement correctly the management of thread GDTs which was
    limiting applications to only ever creating 8192 threads

  • make the first page of the 'brk' invalid for addressing

  • analysis and cleanup of the regression test suite and in particular tweak
    the i386 leak tests to not detect possible leaks due to left over pointers
    in ECX.

  • make coredumps readable by lldb

  • improve the setting of errno by C allocating functions

  • fix building of Valgrind with llvm-devel (15.0.0)

For FreeBSD 13.1 / 14.0 there are

  • syscall wrappers for funlinkat, copy_file_range, swapoff, shm_open2

  • add K_INFO handling to fcntl

  • add handling for new auxv entries

  • added some default suppressions for DRD and Helgrind

There is now an initial version of vgdb invoker support - this allows vgdb to
use ptrace to force valgrind to poll for gdb commands. This is not yet
available in the ports versions.

That does not leave much in the way of outstanding issues. I expect that 14.0
and newer versions of llvm will keep on requiring support. Apart from that
there is

  • some small problems with error messages getting the correct source
    information

  • better core dumps (low priority)

  • TLS (thread local storage) handling for Helgrind (difficult if not
    impossible)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Pantheon desktop on FreeBSD

Links:
elementary OS URL: https://elementary.io
Development repository URL: https://codeberg.org/olivierd/
freebsd-ports-elementary

Contact: Olivier Duchateau <duchateau.olivier@gmail.com>

The Pantheon desktop environment is designed for elementary OS. It builds on
GNOME technologies (such as Mutter, GNOME Shell, GTK 3 and 4) and it is written
in Vala.

The goal is to have a new desktop for users. Some features are not well
supported, but we can have full session.

The repository contains Mk/Uses framework elementary.mk, official applications,
and curated ports which depend of x11-toolkits/granite (total of 56 new ports).

I have submitted several patches, especially:

  • x11-toolkits/granite7

  • devel/libgee update to 0.20.5 bug #262893

  • sysutils/bamf update to 0.5.6 bug #264203

Open tasks

  • Add support of user settings (it is very Ubuntu-centric)

  • Finish porting wingpanel-indicator-power (power management)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Feature Complete Port of Intel’s igt-gpu-tools

Links:
FreeBSD Wiki Project Page URL: https://wiki.freebsd.org/
SummerOfCode2022Projects/
ImprovingTheLinuxKPICompatibilityLayerForTheFreeBSDGraphicsStack
Status Reports URL: https://cdaemon.com/tags/gsoc2022

Contact: Jake Freeland <jfree@freebsd.org>

Intel’s igt-gpu-tools serves as a generic testing suite for drm drivers on
Linux. The igt-gpu-tools suite is separated into tests and tools that target
kms, memory management, and command submission. The utility provides low-level
reporting for transparent tracking of kernel changes and efficient debugging of
modern drm drivers.

Porting the project to FreeBSD could introduce greater stability in future
releases of FreeBSD’s LinuxKPI-driven drm drivers. A proper kms-driven testing
suite could also increase code output and bring the FreeBSD desktop experience
up to speed with the Linux codebase.

The project officially started under FreeBSD’s Google Summer of Code program on
June 13, 2022. My adapted code can compile with non-FreeBSD compatible snippets
removed. The plan is to reimplement these stripped components in a POSIX
compliant fashion.

Notable incompatible code includes: debugfs, libkmod, libprocps, Linux
performance events, and Linux userfaultfd. If you would like to assist in the
porting of libkmod or libprocps into the ports tree, don’t hesitate to contact
me.

When the FreeBSD compatible code is complete, I will run the modified igt tests
using a host of graphics processors on FreeBSD 14.0-CURRENT. If all is well,
the project’s diff will be submitted into the ports tree.

Sponsor: FreeBSD Google Summer of Code