| 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?>