Skip site navigation (1)Skip section navigation (2)


| raw e-mail | index | archive | help
Thanks to Konstantin Belousov for many rounds of review and feedback as well as
runtime linker fixes. Thanks to Mark Johnston for runtime linker debugging and
Dimitry Andric for sanitizer fixes. Thanks also to everyone who reported bugs
and helped debug issues.

Known issues (as of the end of the reporting period)

  • The libsys ABI is not yet considered stable (it is safe to assume __sys_foo
    () will be supported so language runtimes can use it now).

  • Programs using the address sanitizer must be linked with -lsys (resolved in
    base at publication time).

TODO

  • Add a libsys.h. (See D44387 and other reviews in the stack.)

  • Update intro(2) for libsys.

  • Finalize the ABI. I am likely to reduce the set of _ (underscore) prefixed
    symbols we expose.

  • MFC the existence of libsys? It is not clear this is practical, but it
    might be possible to MFC something useful for language runtimes.

Help wanted

  • Port language runtimes that do not use libc to use libsys for system calls
    rather than rolling their own interfaces.

  • Explore limitations on where system calls can be made similar to OpenBSD’s
    msyscall(2) (now obsolete) and pinsyscalls(2) (not an obvious match to our
    libsys).

Sponsor: AFRL, DARPA

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

PackageKit backend for FreeBSD pkg

Contact: Gleb Popov <arrowd@FreeBSD.org>

PackageKit is a small D-Bus daemon program that serves as a backend for
"application store" type of apps - most notably Plasma Discover and Gnome
Software Center. The latest PackageKit release features a libpkg backend, which
means that you can now use PackageKit-enabled programs on FreeBSD to manage
software. Plasma Discover is already switched to using PackageKit, so you will
get it working out of the box once you update your ports/packages.

If you observe any crashes or bugs in PackageKit please let me know by opening
an issue upstream. If you are interested in contributing, there is a lot of
work to do too!

Sponsor: Serenity Cybersecurity, LLC

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

Kernel

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

iwlwifi(4) and wireless for 13.3-RELEASE

Links:
Categorised Wireless Problem Reports URL: https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=277512&hide_resolved=0

Contact: Bjoern A. Zeeb <bz@FreeBSD.org>
Contact: The FreeBSD wireless mailing list <wireless@FreeBSD.org>

In the first weeks of 2024 focus was on stability for 13.3-RELEASE to finally
make iwlwifi(4) usable. The upcoming 14.1-RELEASE will benefit from this work
too. The response has since generally been positive and iwlwifi(4) supporting
chipsets up to BE200 seems mostly stable, yet still slow.

A lot of testing was provided by the FreeBSD Foundation and by many users.
Massive thanks to everyone who tested, reported back, updated PRs and helped
other users.

I have also slowly started to "categorise" more (old) wireless problem reports
and will try to continue with some spring cleaning throughout the year.

If you have questions or feedback please use the freebsd-wireless mailing list.
That way everyone will see, be able to join in, and the answers will be
publicly archived.

Sponsor: minipci.biz (BE200 hardware)

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

Architectures

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

Ten64, WHLE-LS1, and HoneyComb

Links:
My wiki page with links to some status URL: https://wiki.freebsd.org/BjoernZeeb
/

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

Solid-Run’s HoneyComb, Traverse Technologies’s Ten64 and some versions of
Conclusive Engineering’s WHLE-LS1 all are NXP based platforms with the Data
Path Acceleration Architecture Gen2 (DPAA2).

Work has happened to support or improve support for peripherals on these
boards.

For DPAA2 I have local changes which will need review (or further discussion):

  • Cleanup of memac (MDIO) code reducing bus attachment (ACPI and FDT
    specific) code into more common code.

  • Cleanup of MC bus attachment code (again ACPI, FDT).

  • For reasons of mii_fdt.c support on some PHYs on FDT-based platforms
    restructure MAC/MII code and mostly migrate it out of the network interface
    (NI).

  • Improve Dmitry Salychev’s (dsl) initial SFF/SFP code, prototyping a bus
    similar to MII for SFP with the hope that with more work it can grow into a
    larger, general FreeBSD framework and hooked it up to DPMAC.

  • With this, minimal support (still fairly hacked up) for "managed" SFP+ mode
    (using the Ten64 terminology) is usable on FDT-based systems using DAC and
    fiber cables.

  • Add more sysctl statistics to DPMAC and NI.

In short, I mostly cleaned up some of the mess I contributed to during the
initial bring-up.

For the LS1088a based WHLE-LS1 systems changes include:

  • device-tree file updates.

  • Added support for the PCA9546 I2C Switch (committed).

  • Added basic support for the PCAL6524 24-bit Fm+ I2C-bus/SMBus I/O expander.

  • Added basic support for the PCA9633 4-bit Fm+ I2C-bus LED driver to drive
    the status LEDs.

  • Added support to program the rgephy(4) LEDs (which needs to be validated).

  • Started testing the eMMC with MMCCAM and GENERIC but had trouble (needs
    further investigation, seemed fine from firmware for updates).

  • Tested one of three PCIe slots and USB fine.

For the Ten64:

  • Most of the basic lifting happened a while ago and it has generally been
    usable.

  • Detecting the VSC8514 PHY as such went in end of last year.

  • Used as the default platform to test the DPAA2 changes and SFP/SFP+ code.

In addition Pierre-Luc Drouin has overhauled the Vybrid I2C support now
attaching and working on both FDT- and ACPI-based systems (committed).

Sponsor: Traverse Technologies (Ten64 hardware a while ago, support)

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

Cloud

Updating cloud-specific features and bringing in support for new cloud
platforms.

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: Souradeep Chakrabarti <schakrabarti@microsoft.com>
Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>

In this quarter, we have solved all the blocking issues and published the
13.3-RELEASE on Azure Marketplace.

Work in progress tasks:

  • Automating the image building and publishing process and merging to src/
    release/.

  • Building and publishing snapshot builds to Azure community gallery.

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

Open tasks:

  • Update FreeBSD-related doc at Microsoft Learn

  • Support FreeBSD in Azure Pipelines

  • Update Azure agent port to the latest version

  • Upstream local modifications of Azure agent

  • Port Linux Virtual Machine Extensions for Azure

Sponsor: Microsoft for people in Microsoft, and for resources for the rest
Sponsor: The FreeBSD Foundation for everything else

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

FreeBSD as a Tier 1 cloud-init Platform

Links:
cloud-init Website URL: https://cloud-init.io/
cloud-init Documentation URL: https://cloudinit.readthedocs.io/en/latest/

Contact: Mina Galić <freebsd@igalic.co>

cloud-init is the standard way of provisioning servers in the cloud. Over the
past year and a half, thanks to this FreeBSD support has steadily improved.
This year, together with cloud-init developers and the FreeBSD Foundation, we
decided to explicitly focus on making improvements in FreeBSD itself, that will
aid the cloud-init team to test future changes to FreeBSD code-paths
themselves. To achieve this goal, I need to make FreeBSD run in LXD (and
Incus), under the control of lxd-agent (or incus-agent).

Here are some improvements from the recent weeks:

  • I have written a small testing-framework (in sh, and I’m slowly porting it
    to OpenTofu/Terraform), which installs the latest version of net/
    cloud-init-devel or net/cloud-init and runs a couple of standard cloud-init
    tests.

  • To do this, I have created a dedicated public repository which contains the
    latest versions of net/cloud-init-devel and net/cloud-init for FreeBSD 13
    and 14 on amd64 and aarch64.

  • I have ported Linux’s vsock testing framework to FreeBSD

  • I created a driver skeleton for a VirtIO Socket driver, based on the HyperV
    Socket driver.

  • In doing so, I made numerous improvements to HyperV sockets, some of which
    are accepted, others still need more work.

  • I have tested and released the latest 24.1 series cloud-init, where the
    cloud-init team and I have finally fixed some longstanding bugs, such as
    moving /run/cloud-init to /var/run/cloud-init on BSD, as well as fixing the
    homedir argument to user_groups to actually do something.

  • This release also sees numerous fixes to the OpenBSD code-paths from the
    community and not just me.

  • I have also started an official port for OpenBSD, but that work has stalled
    .

The work to come, in broad strokes:

  • Finish the FreeBSD VirtIO Socket driver.

  • Fix Go’s runtime to support VirtIO on FreeBSD.

  • Port lxd-agent’s dependencies to FreeBSD.

  • Port lxd-agent to FreeBSD.

That work will be interspersed with more improvements to cloud-init on BSDs,
and more tests on different cloud providers.

Sponsor: The FreeBSD Foundation

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

OpenStack on FreeBSD

Links:
OpenStack URL: https://www.openstack.org/
OpenStack on FreeBSD URL: https://github.com/openstack-on-freebsd

Contact: Chih-Hsin Chang <starbops@hey.com>
Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>

The OpenStack on FreeBSD project aims to seamlessly integrate OpenStack cloud
infrastructure with the FreeBSD operating system. It uses FreeBSD’s unique
features while ensuring compatibility with OpenStack standards.

In the first quarter of 2024, we made significant progress on the OpenStack on
FreeBSD project. This included submitting a proposal for BSDCan 2024 and
attending AsiaBSDCon 2024 to share our porting experiences and gain exposure
for the project. The feedback received at AsiaBSDCon was particularly valuable
and helped in refining the project’s direction. During this period, we also
reviewed the project’s phase 1 tasks and made necessary adjustments. We also
planned for phases 2 and 3, aligning them with the project’s long-term goals.
One technical achievement was verifying the functionality of bhyve serial
console over TCP, an important part of the project’s infrastructure.
Additionally, we created a demo video showcasing the project’s progress and
features.

Looking ahead, our focus for the next quarter includes confirming the
feasibility of implementing FreeBSD privilege-management user space tools
leveraging mac(4) and priv(9), simplifying installation steps by transitioning
to FreeBSD ports, and porting OpenStack Ironic to FreeBSD. These tasks will
enhance the project’s capabilities and compatibility.

Sponsor: The FreeBSD Foundation

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

Documentation

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

Documentation Engineering Team

Link: FreeBSD Documentation Project URL: https://www.freebsd.org/docproj/
Link: FreeBSD Documentation Project Primer for New Contributors URL: https://docs.freebsd.org/en/books/fdp-primer/
Link: Documentation Engineering Team URL: https://www.freebsd.org/administration/#t-doceng

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:

Edward Tomasz Napierała's doc commit bit was taken for safekeeping. Tom Rhodes
's doc commit bit was taken for safekeeping.

FreeBSD Translations on Weblate

Link: Translate FreeBSD on Weblate URL: https://wiki.freebsd.org/Doc/Translation/Weblateurl
Link: FreeBSD Weblate Instance URL: https://translate-dev.freebsd.org/url

Q1 2024 Status

  • 17 team languages

  • 189 registered users

Three new translators joined Weblate:

  • piker3 in Polish team (pl)

  • chrislongros in Greek team (el)

  • grip in Italian team (it_IT)

Languages

  • Chinese (Simplified) (zh-cn) (progress: 7%)

  • Chinese (Traditional) (zh-tw) (progress: 3%)

  • Dutch (nl) (progress: 1%)

  • French (fr) (progress: 1%)

  • German (de) (progress: 1%)

  • Greek (el) (progress: 1%)

  • Indonesian (id) (progress: 1%)

  • Italian (it) (progress: 5%)

  • Korean (ko) (progress: 32%)

  • Norwegian (nb-no) (progress: 1%)

  • Persian (fa-ir) (progress: 3%)

  • Polish (progress: 2%)

  • Portuguese (progress: 0%)

  • Portuguese (pt-br) (progress: 22%)

  • Spanish (es) (progress: 36%)

  • Turkish (tr) (progress: 2%)

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.

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

Ports

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

FreshPorts: Notification of new packages

Links:
FreshPorts URL: https://freshports.org/
FreshPorts blog URL: https://news.freshports.org/

Contact: Dan Langille <dvl@FreeBSD.org>

FreshPorts and FreshSource have reported upon FreeBSD commits for 20 years.
They cover all commits, not just ports.

FreshPorts tracks the commits and extracts data from the port Makefiles to
create a database of information useful to both port maintainers and port
users.

For example, https://www.freshports.org/security/acme.sh/#history shows the
history of the security/acme.sh port, back to its creation in May 2017. Also
available are dependencies, flavors, configuration options, and available
packages. All of this is useful for both users and developers of ports.

Notification: New Package Available

One of the original features of FreshPorts is notification of ports updates.
You can create a list of ports and receive notifications about those ports.
This new feature can also notify when a new package is available for that port.
The use case: a known security vulnerability has been patched. FreshPorts will
tell you the port has been patched, and then you wait for the package. This new
feature will tell you when that package is available.

Details at:

  • https://github.com/FreshPorts/freshports/issues/542

Help Needed

It has been over 23 years since FreshPorts started. Others must take over
eventually. I have started that process recently. There are several aspects to
FreshPorts:

  • FreeBSD admin (updating the OS and packages)

  • front end code (website - mostly PHP)

  • back end code (commit processing - Perl, Python, shell)

  • database design (PostgreSQL).

The database does not change very often and requires little maintenance
compared to the applications and OS. The website pretty much runs itself. From
time to time, a change to the FreeBSD ports infrastructure breaks something or
requires a modification, but there is rarely any urgency to fix that. This is
not a huge time commitment. There is a lot of learning. While not a complex
application, FreshPorts is also not trivial.

To contribute, please join the https://lists.freshports.org/mailman/listinfo/freshports-coders
mailing list and let us know what you would like to help
with.

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

GCC on FreeBSD

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

Contact: Lorenzo Salvadore <salvadore@FreeBSD.org>

Updating GCC default version to 13 is finally finished. Thanks to Antoine
Brodin who ran the exp-runs and to all other developers and ports maintainers
involved.

As promised in the preceding report, the next goal is to reduce the number of
open bugs for GCC ports. Some work on existing bugs has already started.

In particular, lang/gcc14-devel has long stayed out of date due to some issues
with building the port without any BOOTSTRAP option. Thanks to the help of
other developers and contributors (a special thank to Mark Millard), I noticed
that according to the official documentation building GCC without bootstrap
requires a working GCC binary and thus I switched lang/gcc14-devel to require
that a BOOTSTRAP option is set. However it has later been stated that
bootstrapping GCC using clang and libc++ is officially supported. But it has
also been stated that this is not a high priority.

At the moment lang/gcc14-devel is the only GCC port requiring a BOOTSTRAP
option to be set. The plan is to have all GCC ports for versions greater or
equal than 14 (i.e. future GCC ports) to require such an option: even if
building without bootstrap is more or less officially supported, being low
priority for upstream it increases the burden of maintaining GCC ports for low
results. In case lower versions start to have issues building without
bootstrap, I am going to require bootstrap for those as well.

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

Valgrind: port to arm64 on its way

Links:
Valgrind Home Page URL: https://www.valgrind.org/
Valgrind News URL: https://www.valgrind.org/docs/manual/dist.news.html
arm64 port URL: https://github.com/paulfloyd/freebsdarm64_valgrind

Contact: Paul Floyd <pjfloyd@wanadoo.fr>

The major news, as per the title, is that a port to FreeBSD arm64 (or aarch64)
is now ready. The next steps are to get it reviewed and pushed upstream.

Valgrind 3.23 is due out at the end of April 2024 and devel/valgrind will be
updated shortly after that.

devel/valgrind-devel will get an update as soon as I have pushed the changes
for arm64.

--track-fds=yes now checks for and warns about attempts to close a file
descriptor more than once. Handling of closefrom has been improved to use this
feature.

There are some important fixes for FreeBSD 15, in particular handling the new
libsys.

Here is a list of smaller bugfixes:

  • Support for FreeBSD 13.3 has been added.

  • Added a redirect for reallocarray.

  • Several fixes for aio* functions.

  • Added a redirect for memccpy.

  • There is a fix for _umtx_op OP_ROBUST_LISTS.

  • Added redirects for C23 free_sized and free_aligned_sized.

  • Correctly propagate the ELF stack protection flags to the guest stack that
    Valgrind synthesizes.

  • Fixes for --sanity-level-3 and above (only used for Valgrind self-testing
    at runtime).

  • Several fixes to checking done for semctl.

  • Fixed argument checking for utrace.

  • Fixed argument checking for clock_nanosleep.

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

Third Party Projects

Many projects build upon FreeBSD or incorporate components of FreeBSD into
their project. As these projects may be of interest to the broader FreeBSD
community, we sometimes include brief updates submitted by these projects in
our quarterly report. The FreeBSD project makes no representation as to the
accuracy or veracity of any claims in these submissions.

Containers and FreeBSD: Pot, Potluck and Potman

Links:
Pot organization on GitHub URL: https://github.com/bsdpot

Contact: Luca Pizzamiglio (Pot) <pizzamig@FreeBSD.org>
Contact: Bretton Vine (Potluck) <bv@honeyguide.eu>
Contact: Michael Gmelin (Potman) <grembo@FreeBSD.org>

Pot is a jail management tool that also supports orchestration through Nomad.
Potluck aims to be to FreeBSD and Pot what Dockerhub is to Linux and Docker: a
repository of Pot flavours and complete container images for usage with Pot and
in many cases Nomad.

During this quarter, there were no new Pot releases.

Potluck saw quite some activity though. Not only have the images been rebuilt
for FreeBSD 14, but also the new Adminer container has been submitted by
first-time contributor Sidicer. Additionally a large number of additional
features, updates and fixes have been committed to containers like
HAProxy-Consul, Grafana, PostgreSQL-Patroni, or Prometheus.

For the Mastodon container, a blog post has been published explaining how to
use it to run your own instance.

As always, feedback and patches are welcome.

Sponsors: Nikulipe UAB, Honeyguide Group



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?>