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

Introduction

This is a draft of the October–December 2017 status report. Please check back after it is finalized, and an announcement email is sent to the FreeBSD-Announce mailing list.


FreeBSD Team Reports

Projects

Kernel

    Architectures

    Userland Programs

      Ports

        Documentation

          Miscellaneous

          Third-Party Projects



              FreeBSD Team Reports

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


              Ports Collection

              Links
              About FreeBSD Ports URL: https://www.FreeBSD.org/ports/
              Contributing to ports URL: https://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing/ports-contributing.html
              FreeBSD Ports Monitoring URL: http://portsmon.FreeBSD.org/index.html
              Ports Management Team URL: https://www.FreeBSD.org/portmgr/index.html
              FreeBSD Ports Managemnet Team on Twitter (@FreeBSD_portmgr) URL: https://twitter.com/FreeBSD_portmgr/
              FreeBSD Ports Management Team on Facebook URL: https://www.facebook.com/portmgr
              FreeBSD Ports Management Team on Google+ URL: https://plus.google.com/communities/108335846196454338383

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

              The last quarter of 2017 ended with over 27,000 ports in the repository. There are currently just under 2,800 open ports PRs with 685 of them unassigned. There were 6,700 commits made by 178 committers. The statistics did not change much since last quarter, however the number of unassigned PRs dropped slightly.

              This quarter, we welcomed Yuri Victorovich (yuri@), Jason Bacon (jwb@), and Wolfram Scheider (wosch@) as new or returning port committers. No commit bits were taken in for safekeeping.

              Portmgr, together with postmaster@, changed the policy of the FreeBSD-ports@ mailing list. It is now required to be subscribed to the list before one can post to it. This will help in reducing spam on this list and help users finding better questions to their answers while browsing the list archive.

              This quarter ports "flavors" went live. Flavors can be used to build multiple variations of a port, for example py27-sarge and py36-sarge. All Python ports and some other ports are now flavored. Other uses of flavors could be including or excluding X11 (foo vs foo-x11 or foo-nox11) or selecting the printer paper size (A4 vs letter).

              USES=fmake has been removed as it was no longer useful.

              Some default versions got updated: Ruby to 2.4 and Samba to 4.6. Firefox got updated to version 57.0.3 and pkg to 1.10.3.

              During the last quarter, antoine@ ran 33 exp-runs to validate changes to the base system, fix Qt5 ports, test Python flavors and other port updates, and make rubygem port builds reproducible.

              Open tasks:

              1. Clang 6 is being imported into base. There is a PR that keeps track of ports failing with this compiler, see PR 224669. If you use any ports mentioned here, please consider fixing them.

              The FreeBSD Core Team

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

              The most significant action by Core during the final quarter of 2017 was the approval of the new Code of Conduct after a long period of development and review. Core added a preamble to the text emphasizing the principles behind the Code of Conduct over detailed interpretation of the rules. The new code delegates the handling of complaints to a Code of Conduct review board; we are currently finalizing practical arrangements around setting up the review board before announcing the adoption of the new code.

              John Hixson of iXsystems was proposed, and accepted, as the first new Project Member under the new rules adopted earlier this year. Core feels that John is an excellent choice as the first member, and looks forwards to adding many other project members in the future.

              There have been some significant changes around the Security Officer and secteam. Gordon Tetlow has formally taken over the role of Security Officer from Xin Li. Xin remains an active member of secteam, and Ed Maste has now joined secteam as well.

              Gordon joined Secteam at a point where they were struggling with handling the widely publicised WPA2 vulnerability (FreeBSD-SA-17:07.wpa), and had an immediate impact simply by making a public response, even though the technical fixes were not entirely ready. Gordon's remit from Core is to examine how Secteam operates and work out how to manage their case-load while avoiding the problems of burn-out and overload that have impeded Secteam's effectiveness in the past.

              One of the key problems is that security problems are handled in a completely separate bug handling system to general PRs. This is unusual compared to most similar OS projects, and leads to difficulties in bringing in available talent from amongst the entire body of FreeBSD developers in order to be able to share the load and react quickly. Secteam is working with Bugmeister to enable suitable access controls within our main Bugzilla instance, so that we can both conform to bug embargoes and other confidentiality requirements but also make it easy to solicit fixes from a wider range of developers and to transition security bugs to open handling like any other bug once there is no more need for secrecy.

              This quarter also saw the creation of a 10.4-RELEASE branch, and the extension of the lifetime of 11.0-RELEASE by one month. The former was in response to requests from a number of prominent FreeBSD consumers, who needed access to new functionality but could not immediately upgrade to 11.0-RELEASE. Releasing 10.4 permitted this without making a significant extension to the lifetime of the 10.x release series.

              The extension to 11.0-RELEASE EoL was a consequence of failing to communicate the impending switch to 11.1-RELEASE in good time. Since this was the first minor version transition under the new release schedule, in discussion with Secteam and Release Engineering, we concluded that a delay was necessary to allow the userbase sufficient warning to upgrade before 11.0-RELEASE went out of support. This was not a cost-free decision: as Portmgr reminded us, this affected package building and delayed implementation of some important updates.

              FreeBSD will be participating in Google Summer of Code again in 2018. This has become one of our most important routes for recruiting the new, young developers vital for ensuring the longevity of the project.

              Pedro Giffuni proposed adopting the SPDX license tagging system as used by many other projects, including the Linux kernel, in order to facilitate programatic license management by downstream consumers. Core agreed enthusiasticly.

              Core has agreed to promote the MIPS architecture to Tier-2 status.

              A proposal to enhance security by discontinuing HTTP or other unencrypted channels for all FreeBSD services was not something Core could approve for the immediate future. While switching to HTTPS has obvious security benefits, we would need to distribute appropriate CA certificates as part of the base system and make certain other changes before this could be achieved relatively seamlessly. All FreeBSD services are already available over secure channels, but our documentation did not necessarily present secure access methods as the preferred routes. Action is being taken to address the documentation, and this question will be revisited once the necessary groundwork is in place.

              The fortune(6) program has long been a focus for controversy, and previous Cores have needed to impose a lock on updates to the fortune data files. The argument blew up again over the re-deletion of a number of apparently pro-Nazi quotations. Core decided that enough was enough and removed all of the fortune data files except for FreeBSD-tips.dat from the base system. The tacit approval of many questionable or controversial opinions by shipping them as a part of the base system is a liability the project simply cannot afford.

              No new commit bits were issued during this quarter, but we did see two former committers: Sean Eric Fagan and Wolfram Schneider, reactivate their commit bits. One committer, Ngie Cooper, has handed back their bit.



              Projects

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


              RDMA stack update based on Linux v4.9

              Links
              Subversion Commit Adding the Driver URL: https://svnweb.FreeBSD.org/base?view=revision&revision=326169

              Contact: Mellanox Drivers Team <FreeBSD-drivers@mellanox.com>

              An update to the FreeBSD RDMA stack based on code from Linux v4.9 was merged into FreeBSD 12-CURRENT on November 4th, including many bug fixes and new features with a focus on RoCEv2 — Routable RoCE.

              RDMA over Converged Ethernet (RoCE) is a network protocol that leverages Remote Direct Memory Access (RDMA) capabilities to accelerate communications between applications hosted on clusters of servers and storage arrays. RoCE incorporates the IBTA RDMA semantics to allow devices to perform direct memory to memory transfers at the application level without involving the host CPU. Both the transport processing and the memory translation and placement are performed by hardware resulting in lower latency, higher throughput, and better performance compared to software based protocols.

              RoCEv2 is the most recent version of RoCE, adding some routing capabilities as both IP and UDP headers are included in the packet format. To complete the RoCEv2 solution, Support for ECN (Explicit Congestion Notification, lossy fabric) and PFC (Priority Flow Control, lossless fabric) protocols with rate limiting options will be added in the first quarter of 2018.

              This project also introduces the following updates:

              • libibverbs, librdmacm, libibumad and vendor-specific libraries ported from the Linux rdma-core v15+
              • InfiniBand diagnostic tools, infiniband-diags, version 1.6.7
              • InfiniBand subnet manager — OpenSM, version 3.3.20+
              • LinuxKPI support

              Important notes:

              • GPL-only (non dual-licensed) portions of the Linux code were either excluded or written from scratch under a BSD license by Hans Petter Selasky.
              • The code has been tested by several RDMA vendors that also support iWARP.

              This project was sponsored by Mellanox Technologies.

              Open tasks:

              1. Add ECN (Explicit Congestion Notification) and PFC (Priority Flow Control) support.


              Kernel

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



              Architectures

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


              FreeBSD on PowerNV (ppc64)

              Links
              Semihalf PowerNV Official Repository URL: https://github.com/Semihalf/powernv
              Skiboot Repository with the Latest OPAL Firmware URL: https://github.com/open-power/skiboot

              Contact: Patryk Duda <pdk@semihalf.com>
              Contact: Wojciech Macek <wma@FreeBSD.org>
              Contact: Michal Stanek <mst@semihalf.com>
              Contact: Nathan Whitehorn <nw@FreeBSD.org>

              Semihalf is happy to announce that FreeBSD is running on an IBM Power8 processor. This project is a continuation of work done by Nathan Whitehorn, who provided a basic support for a PowerNV emulator.

              The IBM Power8 family of CPUs offers superior performance compared to previous CPUs in the Power series. It provides complete NUMA support with up to 128 execution threads in two-socket system (2 sockets, 8 cores per socket, 8 threads per core). All I/O communication is handled by an integrated PCIe interface equipped with multiple IOMMU engines.

              The support for Power8 system running FreeBSD in a non-virtualized environment contains:

              • A generic driver for the OPAL hypervisor
              • kboot loader modifications to allow for a little-endian to load a big-endian kernel ELF image
              • An update to the ELF parser in skiboot, allowing it to understand the FreeBSD kernel file format
              • Basic support for the PowerNV architecture, including modes of operation, memory-management unit (MMU), and interrupt controller
              • SMP operation with up to 128 CPUs
              • PCI host bridge subsystem driver, including IOMMU mapping for external busses
              • PCIe host controller driver
              • USB-3.0 XHCI driver
              • Reworked several drivers to be big-endian compatible
              • Chelsio cxgbe(4) 10/25G network adapter
              • NVMe SSD driver

              All work is available in the linked GitHub repository. The process of getting this work into the official repository has already started and eventually, all commits will be integrated into FreeBSD-12 CURRENT.

              This project was sponsored by IBM, The FreeBSD Foundation, QCM Technologies, Semihalf, and Limelight Networks (Kevin Bowling).



              Userland Programs

              Changes affecting the base system and programs in it.



              Ports

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



              Documentation

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



              Miscellaneous

              Objects that defy categorization.


              LibreNMS

              Links
              LibreNMS ZFS Addition URL: https://github.com/librenms/librenms/pull/7938

              Contact: Zane Bowers-Hadley <vvelox@vvelox.net>

              LibreNMS is an autodiscovering PHP/MySQL/SNMP-based network monitoring solution which includes support for a wide range of network hardware and operating systems, including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP and many more.

              Among other things, it can monitor applications and other functionality running on a server via SNMP extensions. This has been the area of focus for my present work.

              ZFS support has been committed towards the end of December, which was too late to make the December release, but it will be in the January release.

              This brings the ability to monitor ARC and pool information, with each pool having its own separate set of graphs.

              The ARC graphing is as below.

              • ARC size in bytes
              • ARC size, percent of max size
              • ARC size breakdown
              • ARC efficiency
              • ARC cache hits by list
              • ARC cache hits by type
              • ARC cache misses by type
              • ARC cache hits
              • ARC cache misses
              • ARC misc (deleted, skips, and recycle misses)

              The pool tracking is comparatively much simpler, using the output from zpool list.

              • Pool Space
              • Pool Capacity
              • Pool Fragmentation

              Open tasks:

              1. Suggestions are needed for additional statistics or other information to monitor, whether FreeBSD-specific or otherwise.


              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.


              News Home | Status Home