• [FreeBSD-Announce] FreeBSD Quarterly Status Report - Fourth Quarter 201

    From Benjamin Kaduk@21:1/5 to All on Tue Feb 14 13:00:00 2017
    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA512

    FreeBSD Project Quarterly Status Report - 4th Quarter 2016

    Another year has passed (and another has gotten well underway, while we
    worked to assemble this report). Over the past two years that I have
    been part of the monthly@ team that assembles these reports, it has
    been enlightening to watch the individual entries pass through my emacs
    and/or vim. These reports give me a picture of what is going on with
    FreeBSD that I could not get just from reading commit mail; I hope that
    is also true for our readers.

    This quarter brings the usual mix of continuations of many stalwart
    projects and entires of new participants, as well as the return of some
    items after a few quarters' hiatus. Enjoy and be enlightened!

    --Benjamin Kaduk
    __________________________________________________________________

    The deadline for submissions covering the period from January to March
    2017 is April 7, 2017.
    __________________________________________________________________

    FreeBSD Team Reports

    * FreeBSD Release Engineering Team
    * Ports Collection
    * The FreeBSD Core Team
    * The FreeBSD Foundation

    Projects

    * Ceph on FreeBSD
    * OpenBSM
    * Sysctl Exporter for Prometheus
    * The Graphics Stack on FreeBSD

    Kernel

    * FreeBSD on Hyper-V and Azure
    * I2C, GPIO, and SPI Support for MinnowBoard

    Architectures

    * FreeBSD on ARM Boards
    * FreeBSD/arm64
    * FreeBSD/EC2

    Userland Programs

    * libarchive
    * Reproducible Builds in FreeBSD
    * Updates to GDB
    * Using LLVM's LLD Linker as FreeBSD's System Linker

    Ports

    * GCC (GNU Compiler Collection)
    * LXQt on FreeBSD
    * Mono
    * Wine
    * Xfce on FreeBSD
    __________________________________________________________________

    FreeBSD Team Reports

    FreeBSD Release Engineering Team

    Links
    FreeBSD 11.0-RELEASE Announcement
    URL: https://www.FreeBSD.org/releases/11.0R/announce.html
    FreeBSD 11.0-RELEASE Release Notes
    URL: https://www.FreeBSD.org/releases/11.0R/relnotes.html
    FreeBSD Development Snapshots
    URL: http://ftp.FreeBSD.org/pub/FreeBSD/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.

    The FreeBSD Release Engineering Team in concert with the FreeBSD
    Security Team finalized FreeBSD 11.0-RELEASE. FreeBSD 11.0-RELEASE was
    announced on October 10, 2016, roughly four weeks after the original
    schedule.

    The FreeBSD Release Engineering Team would like to specifically thank
    Colin Percival and all members of the FreeBSD Security Team for their
    extra diligence in ensuring that user-facing upgrade paths were
    properly addressed and documented.

    This project was sponsored by The FreeBSD Foundation.
    __________________________________________________________________

    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 portmgr 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 Ports Tree has reached the marker of 27,000 ports, with the PR
    count risen slightly to around 2,250. Of these PRs, 572 are unassigned.
    The last quarter saw 6871 commits by 176 committers. The number of open
    and the number of unassigned PRs both increased lightly since last
    quarter.

    Two commit bits were taken in for safe keeping in the last quarter: jmg
    after 19 months of inactivity, and edwin at his own request. We
    welcomed three new committers: Nikolai Lifanov (lifanov), Jason Bacon,
    and Mikhail Pchelin (misha).

    On the management side, adamw and feld were elected as new portmgr
    members, and rene was promoted to full member. feld is already involved
    in ports-secteam.

    On the infrastructure side, two new USES (lxqt and varnish) were
    introduced. Some default versions were also updated: varnish 4 (new),
    GCC 4.8 to 4.9, Perl 5.20 to 5.24, and Python 3.4 to 3.5. Two major
    ports reached their end-of-life at December 31st and were removed: Perl
    5.18 and Linux Fedora 10 (the default is Linux CentOS 6). Because
    FreeBSD 9.3, 10.1, and 10.2 also reached end-of-life, support for those
    versions was removed from the Ports Tree.

    Some major ports were updated to their latest versions: pkg to 1.9.4,
    Firefox to 50.1.0, Firefox-esr to 45.6.0, Chromium to 54.0.2840.100,
    and Ruby to 2.1.10 / 2.2.6 / 2.3.3. www/node was updated to version 7;
    version 6 was split off as www/node6 for long-term support.

    Behind the scenes, antoine ran 39 exp-runs to verify package updates,
    framework changes, and changes to the base system. bdrewery installed
    new package builders and added builds for FreeBSD 11 for mips, mips64,
    and armv6. He also improved the balancing, monitoring, automation of
    the package builders.

    Open tasks:

    1. If you have some spare time, please take up a PR for testing and
    committing.
    __________________________________________________________________

    The FreeBSD Core Team

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

    The major concern for Core during the last quarter of 2016 has been
    about maintaining the effectiveness of secteam. The team is primarily
    in need of better project management, both to improve communication
    generally and to allow the other team members to concentrate on the
    technical aspects of handling vulnerabilities.

    To that end, there has been agreement in principle for either the
    FreeBSD Foundation or one of the companies that are major FreeBSD users
    to employ someone specifically in this role.

    Core confirmed that the new support model would go into effect with
    11.0-RELEASE despite the postponement of the switch to a packaged base
    release mechanism. For details of the new support model, please follow
    the links from the security page of the FreeBSD website.

    Core requested the removal of the misc/jive port, on the grounds that
    it had no function other than to turn text into an offensively racist
    parody. This proved controversial, with many seeing this as a first
    step in bowdlerizing the entire ports tree. That is certainly not
    Core's intention. Core's aim here is to help secure the future of the
    FreeBSD project by making it welcoming to all contributors, regardless
    of ethnicity, gender, sexuality or other improper bases for
    discrimintation. While misc/jive may once have been seen as harmless
    fun, today the implicit approval implied by having it in the ports tree
    sends a message at odds with the project's aims.

    The Marketing team and the associated marketing@FreeBSD.org mailing
    list were wound up, due to lack of activity. Messages to
    marketing@FreeBSD.org will be forwarded to the FreeBSD Foundation's
    marketing team instead.

    Core member Allan Jude, who was already the clusteradm liason, became a
    full member of clusteradm.

    An emergency correction to the 11.0 release notes was authorised, as it
    was giving the misleading impression that 802.11n wireless support had
    only just been added, and this misapprehension was being repeated in
    the press. In reality, FreeBSD has had 802.11n support for many years,
    and the announcement should have said that support had been added to
    many additional device drivers.

    Discussions about a proposal to improve Unicode support are on-going.
    FreeBSD is already standards conformant, but the propsal is to switch
    to a __STDC_ISO_10646_ implementation, similar to what Linux glibc
    currently uses. Opinions are divided on the technical merits of the new
    approach.

    There were the usual quota of queries about licensing and other legal
    matters:
    * Plans to create a GPLv3 overlay for the base system were shelved in
    the light of faster than expected progress at enabling building the
    world using an external toolchain.
    * The trademarks page on the website was updated to show the current
    owners of a number of trademarks in their approved form.
    * In the absence of a tool to extract and summarize all of the
    relevant information, the obligation in the BSD license that
    "Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the
    distribution." is fulfilled by providing a tarball of the system
    sources with their embedded copyright statements.
    * The European Court of Justice's "Right to be Forgotten" only
    applies to search engines, and the FreeBSD project is not one of
    those, so it need not take any action.
    * Core is following closely discussions within the LLVM project
    regarding a change of license which, if implemented, might require
    an audit of the entire ports tree to discover all packages that
    contain binaries linked against libc++ and ensure that they are
    licensed compatibly with LLVM. However, indications are that the
    LLVM project will not adopt such changes.
    * The "Open Source Exception" in the firmware license means that
    committing a "binary blob" driver for the Nvidia Jetson TK1 XHCI
    device is acceptable.

    During this quarter four new commit bits were awarded. Please welcome
    Dexuan Cui, David Bright, Konrad Witaszczyk, and Piotr Stefaniak. We
    were sorry to see Edwin Lansing hang up his commit bits and step down
    from portmgr.
    __________________________________________________________________

    The FreeBSD Foundation

    Links
    FreeBSD Foundation Website
    URL: https://www.FreeBSDFoundation.org/

    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. Funding comes from individual and corporate donations and is
    used to fund and manage software development projects, conferences and
    developer summits, and provide travel grants to FreeBSD contributors.
    The Foundation purchases and supports hardware to improve and maintain
    FreeBSD infrastructure; publishes marketing material to promote,
    educate, and advocate for the FreeBSD Project; facilitates
    collaboration between commercial vendors and FreeBSD developers; and
    finally, represents the FreeBSD Project in executing contracts, license
    agreements, and other legal arrangements that require a recognized
    legal entity.

    Here are some highlights of what we did to help FreeBSD last quarter:

    Fundraising Efforts

    Our work is 100% funded by your donations. We raised $1,527,540 in 2016
    from 1471 donors! Thank you to everyone who made a donation to help us
    continue our efforts in 2017 to support the FreeBSD Project and
    community worldwide! You can make a donation here to our 2017
    fundraising campaign: https://www.FreeBSDfoundation.org/donate/.

    OS Improvements

    The Foundation improves the FreeBSD operating system by employing our
    technical staff to maintain and improve critical kernel subsystems, add
    features and functionality, and fix problems. This also includes
    funding separate project grants like the arm64 port, blacklistd access
    control daemon, and integration of VIMAGE support, to make sure that
    FreeBSD remains a viable solution for research, education, computing,
    products and more.

    Large projects supported last year include:
    * arm64 port
    * VIMAGE Integration
    * Toolchain work
    * blacklistd access control daemon

    The Foundation team worked on a technology roadmap for 2017-2018 during
    our board meeting in November.

    Staff and board members continued hosting bi-weekly conference calls to
    facilitate efforts for individuals to collaborate on different
    technologies.

    You can find out more about the support we provided by reading
    individual updates from Ed Maste, Konstatin Belousov, and Edward
    Napierala in this report.

    Release Engineering

    The Foundation provides a full-time staff member to lead the release
    engineering efforts. This has provided timely and reliable releases
    over the last few years.

    Last quarter, our full-time staff member worked with the FreeBSD
    Release Engineering and Security Teams to finalize 11.0-RELEASE. He
    also added support for the powerpcspe architecture to the 12-CURRENT
    snapshot builds, and continued work on packaging the base system with
    pkg(8). He also continued producing 10-STABLE, 11-STABLE, and
    12-CURRENT development snapshot builds throughout the quarter.

    You can find out more about the support we provided to the Release
    Engineering Team by reading their status update in this report.

    Supporting FreeBSD Infrastructure

    The Foundation provides hardware and support to improve the FreeBSD
    infrastructure. This year, we purchased the following hardware to
    improve the build, continuous integration, and platform processes:
    * A server to reduce the build time from over an hour to 20 minutes
    for the continuous integration process. You can find out more
    information here: https://ci.FreeBSD.org/ .
    * Two ThunderX servers for native package builds for the
    FreeBSD/arm64 architecture.
    * Two servers to improve release engineering builds.
    * Four servers to improve package builds.
    * Four servers as build slaves to increase the number of builds in
    the continuous integration process.

    FreeBSD Advocacy and Education

    A large part of our efforts are dedicated to advocating for the
    Project. This includes promoting work being done by others with
    FreeBSD; producing advocacy literature to teach people about FreeBSD
    and help make the path to starting using FreeBSD or contributing to the
    Project easier; and attending and getting other FreeBSD contributors to
    volunteer to run FreeBSD events, staff FreeBSD tables, and give FreeBSD
    presentations.

    Here is a list highlighting some of the advocacy and education work we
    did last year:
    * Attended and/or sponsored 24 events around the world
    * Provided 15 Travel Grants to developers
    * Created new and updated marketing literature including:
    + Updated FreeBSD 10 Brochure
    + New TeachBSD postcard to spread the word about the program
    + Google Summer of Code flyer
    + FreeBSD 11 Brochure
    + Updated Recruiting Flyer
    + Updated Get Involved Flyer
    + FreeBSD as a Platform for Research Flyer
    * Created a series of FreeBSD How-to Guides:
    + Installing FreeBSD with VirtualBox (Mac/Windows)
    + Installing a Desktop Environment on FreeBSD
    + Installing FreeBSD for Raspberry Pi
    + Installing PC-BSD as a Primary Operating System
    + FreeBSD Setup Tips
    * Acquired New Testimonials:
    + Accelerations Systems
    + NeoSmart Technologies
    + Chelsio Communications
    + Crescent River Port Pilots' Association
    + IXC
    + Stormshield
    * Updated the FreeBSD Project and Foundation Branding:
    + New FreeBSD Foundation website and logo
    + Updated Brand Assets page to include more information about
    the FreeBSD Project and FreeBSD Foundation logos.

    We published our September/October and November/December Journal issues
    at https://www.FreeBSDfoundation.org/journal/ .

    We also published monthly newsletters to highlight work being done to
    support FreeBSD, tell you about upcoming events, and provide other
    information to keep you in the loop of what we are doing to support the
    FreeBSD Project and community:
    https://www.FreeBSDfoundation.org/news-and-events/newsletter/ .

    Conferences and Events

    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, to work together on projects, and to facilitate
    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 also sponsored or attended the following events last quarter:
    * Ohio LinuxFest, October, Columbus, Ohio
    * Grace Hopper 2016, October, Houston, TX
    * COSC 2016, October, Beijing, China
    * Bay Area FreeBSD Vendor and Devoloper's Summit and MeetBSD 2016,
    November, Berkely, CA
    * USENIX LISA '16, December, Boston, MA
    * OSC 2016, December, Beijing, China

    Get the whole list of conferences we supported in 2016 at:
    https://www.FreeBSDfoundation.org/blog/recap-of-2016-advocacy-efforts/ .

    Legal/FreeBSD IP

    The Foundation owns the FreeBSD trademarks, and it is our
    responsibility to protect them. We continued to review requests and
    grant permission to use the trademarks. We also provided legal support
    for the core team to investigate the status of certain patents.

    FreeBSD Community Engagement

    Anne Dickison, our Marketing Director, has been overseeing the efforts
    to rewrite the Project's Code of Conduct to help make this a safe,
    inclusive, and welcoming community. The updated Code of Conduct and
    Report Guidelines are going through the final review process, and will
    be handed off to the Core Team for approval in Q1 2017.

    Go to http://www.FreeBSDfoundation.org to find out how we support
    FreeBSD and how we can help you!
    __________________________________________________________________

    Projects

    Ceph on FreeBSD

    Links
    Ceph Main Site
    URL: http://ceph.com
    Main Repository
    URL: https://github.com/ceph/ceph
    My FreeBSD Fork
    URL: https://github.com/wjwithagen/ceph/tree/wip.FreeBSD

    Contact: Willem Jan Withagen <wjw@digiware.nl>

    Ceph is a distributed object store and file system designed to provide
    excellent performance, reliability and scalability:
    * Object Storage
    Ceph provides seamless access to objects using native language
    bindings or radosgw, a REST interface that is compatible with
    applications written for S3 and Swift.
    * Block Storage
    Ceph's RADOS Block Device (RBD) provides access to block device
    images that are striped and replicated across the entire storage
    cluster.
    * File System
    Ceph provides a POSIX-compliant network file system that aims for
    high performance, large data storage, and maximum compatibility
    with legacy applications.

    I started looking into Ceph because the HAST solution with CARP and
    ggate did not really do what I was looking for. But I aim to run a Ceph
    storage cluster of storage nodes that are running ZFS. User stations
    would be running bhyve on RBD disks that are stored in Ceph.

    The FreeBSD build of Ceph includes most of the tools Ceph provides.
    Note that the RBD-dependent items will not work, since FreeBSD does not
    have RBD (yet).

    The most notable progress since the last report:
    * RBD is actually buildable and can be used to manage RADOS BLOCK
    DEVICEs.
    * All tests run to completion for the current selection of tools,
    though the neded (minor) patches have yet to be pulled into HEAD.
    * Cmake is now the only way of building Ceph.
    * The threading/polling code has been reworked for the simple socket
    code. It now uses a self-pipe, instead of using an odd
    shutdown()-signaling Linux feature.
    * The EventKqueue code was modified to work around the "feature" that
    starting threads destroys the kqueue handles. The code was just
    finshed, so it is not yet submitted to the main repository.
    * We investigated differences between FreeBSD and Linux for
    SO_REUSEADDR and SO_REUSEPORT. Fortunately, the code is only used
    during testing, so disabling these features only delays progress in
    the tests.
    * A jenkins instances is regularly testing both ceph/ceph/master and
    wjwithagen/ceph/wip.FreeBSD, so there is regular verification of
    buildability and the tests:
    http://cephdev.digiware.nl:8180/jenkins/ .

    Build Prerequisites

    Compiling and building Ceph is tested on 12-CURRENT with its clang
    3.9.0, but 11-RELEASE will probably also work, given experience with
    clang 3.7.0 from 11-CURRENT. Interestingly, when 12-CURRENT had clang
    3.8.0, that did not work as well as either 3.7.0 or 3.9.0. The clang
    3.4 present in 10-STABLE does not have the required capabilities to
    compile everything.

    The following setup will get things running for FreeBSD:
    1. Install bash and link it in /bin
    2. It is no longer necessary to add a definition of ENODATA to
    /usr/include/errno.h
    3. Clone the github repo (http://github.com/wjwithagen/ceph.git) and
    checkout the "wip.FreeBSD" branch
    4. Run ./do_FreeBSD.sh to start the build.

    The old build method using automake is no longer used; see the
    README.FreeBSD for more details.

    Parts not (yet) included:
    * KRBD: Kernel Rados Block Devices is implemented in the Linux
    kernel, but not in the FreeBSD kernel. Perhaps ggated could be used
    as a template since it does some of the same things as KRBD, just
    between 2 disks. It also has a userspace counterpart, which could
    ease development.
    * BlueStore: FreeBSD and Linux have different AIO APIs, and that
    incompatibility needs to be resolved somehow. Additionally, there
    is discussion in FreeBSD about aio_cancel not working for all
    devicetypes.
    * CephFS: Cython tries to access an internal field in struct dirent,
    which does not compile.
    * Tests that verify the correct working of the above are also
    excluded from the testset.

    Open tasks:

    1. Run integration tests to see if the FreeBSD daemons will work with
    a Linux Ceph platform.
    2. Compile and test the user space RBD (Rados Block Device). This
    currently works, but testing has been limitted.
    3. Investigate and see if an in-kernel RBD device could be developed
    akin to FreeBSD's ggate.
    4. Investigate the keystore, which could be embedded in the kernel on
    Linux, and currently prevents building CephFS and some other
    components. The first question whether it is really required, or if
    only KRBD require it.
    5. Scheduler information is not used at the moment, because the
    schedulers work rather differently between FreeBSD and Linux. But
    at a certain point in time, this would need some attention in
    src/common/Thread.cc.
    6. Integrate the FreeBSD /etc/rc.d initscripts in the Ceph stack. This
    helps with testing, but also enables running Ceph on production
    machines.
    7. Build a testcluster and start running some of the teuthology
    integration tests on it.
    8. Design a virtual disk implementation that can be used with bhyve
    and attached to an RBD image.
    __________________________________________________________________

    OpenBSM

    Links
    OpenBSM: Open Source Basic Security Module (BSM) Audit Implementation
    URL: http://www.openbsm.org
    OpenBSM on GitHub
    URL: https://github.com/openbsm/openbsm
    FreeBSD Audit Handbook Chapter
    URL: https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/audit.html
    OpenBSM 1.2 alpha 5 announcement
    URL: https://lists.FreeBSD.org/pipermail/trustedbsd-announce/2016-December/000008.html
    DARPA CADETS project
    URL: https://www.cl.cam.ac.uk/research/security/cadets/

    Contact: Christian Brueffer <brueffer@FreeBSD.org>
    Contact: Robert Watson <rwatson@FreeBSD.org>
    Contact: TrustedBSD Audit Mailing Mist <trustedbsd-audit@TrustedBSD.org>

    OpenBSM is a BSD-licensed implementation of Sun's Basic Security Module
    (BSM) API and file format. It is the user-space side of the CAPP Audit
    implementations in FreeBSD and Mac OS X. Additionally, the audit trail
    processing tools are expected to work on Linux.

    This quarter saw increased development activity, fueled by the DARPA
    CADETS project, resulting in the release of OpenBSM 1.2 alpha 5. Among
    this release's changes are the ability to specify the kernel's maximum
    audit queue length, sandboxing support for auditreduce(1) and
    praudit(1) on FreeBSD and other systems that support Capsicum, as well
    as the addition of event identifiers for more FreeBSD system calls. The
    complete list of changes is documented in the NEWS file on GitHub. The
    new release will be merged into FreeBSD HEAD and the supported STABLE
    branches shortly.

    This project was sponsored by DARPA/AFRL (in part).

    Open tasks:

    1. Test the new release on different versions of FreeBSD, Mac OS X,
    and Linux. In particular, testing on the latest versions of Mac OS
    X would be greatly appreciated.
    2. Fix problems that have been reported via GitHub and the FreeBSD bug
    tracker.
    3. Implement the features mentioned in the TODO list on GitHub.
    __________________________________________________________________

    Sysctl Exporter for Prometheus

    Links
    The Prometheus Project
    URL: https://prometheus.io/
    Node Exporter
    URL: https://github.com/prometheus/node_exporter
    Sysctl Exporter
    URL: https://svnweb.FreeBSD.org/base/head/usr.sbin/prometheus_sysctl_exporter/

    Contact: Ed Schouten <ed@FreeBSD.org>

    Prometheus is an Open Source monitoring system that was originally
    built at SoundCloud in 2012. Since 2016, this project is part of the
    Cloud Native Computing Foundation, together with other projects like
    Kubernetes.

    Prometheus scrapes its targets by periodically sending HTTP GET
    requests. Targets then respond by sending key-value pairs of metrics
    and their sample value. Prometheus has a query language, PromQL, that
    can be used to aggregate sample values and specify alerting conditions.
    Tools like Grafana can be used to create fancy dashboards using such
    queries.

    The Prometheus project provides a utility called node_exporter that
    gathers basic system metrics and serves them over HTTP. This utility
    tends to be rather complex, as it has to extract metrics from many
    different sources. On Linux, files in /proc have no uniform format,
    meaning that for every kernel framework a custom collector needs to be
    written.

    On FreeBSD the sitiuation is better, as the data exported through
    sysctl is already structured in such a way that it can easily be
    translated to Prometheus' metrics format. The goal of this project is
    thus to provide a generic exporter for the entire sysctl tree. Not only
    does this prevent unnecessary bloat and indirection, it may also make
    the life of a kernel developer a lot easier. One can easily use
    Prometheus to graph the occurrence of an event over time by
    (temporarily) adding a counter to the kernel.

    An initial version of the sysctl exporter has been integrated into the
    FreeBSD base system in December. It can be run through inetd by
    uncommenting the example provided in inetd.conf. Unfortunately, this
    exporter cannot be merged back to FreeBSD 10.x/11.x, as it depends on
    KBI-breaking changes to sysctl(9).

    Open tasks:

    1. Are you using Prometheus or are you interested in using it? Be sure
    to give both Prometheus and this sysctl exporter a try!
    2. It would be nice if we created a set of useful alerting rules and
    placed those in /usr/share/examples. For example, how can one use
    this exporter to monitor the state of GEOM-based RAID arrays? Is
    such information even exported through sysctl?
    3. Prometheus uses a rather clever format for exporting histograms.
    Histograms are useful for expressing the amount of time taken to
    complete certain events (for example, disk operations). Would it be
    possible to add histograms as native data types to sysctl? If so,
    is there any chance they can be implemented without picking up any
    kernel locks?
    __________________________________________________________________

    The Graphics Stack on FreeBSD

    Links
    Graphics Stack Roadmap and Supported Hardware Matrix
    URL: https://wiki.FreeBSD.org/Graphics
    GitHub Repository
    URL: https://github.com/FreeBSDDesktop/freebsd-base-graphics
    Ports Development Repository
    URL: https://github.com/FreeBSD/freebsd-ports-graphics
    Fork of libudevd-devd Shim
    URL: https://github.com/FreeBSDDesktop/libudev-devd
    Graphics Team Blog
    URL: https://planet.FreeBSD.org/graphics

    Contact: FreeBSD Graphics Team <FreeBSD-x11@FreeBSD.org>
    Contact: Matthew Macy <mmacy@nextbsd.org>

    Good progress on graphics support was made during the weeks around
    Christmas and the new year with the import of Linux 4.9's DRM for i915
    and amdgpu into the drm-next branch of the github repository. The
    amdgpu KMS driver is already somewhat usable, with a few major known
    issues remaining. It now supports GPUs as far back as Southern Islands
    and up to Polaris. The 4.9 update also appears to have fixed a
    regression in i915 that was introduced by the 4.8 merge late this past
    summer. The drm-next branch now supports the Intel integrated graphics
    unit up to Kaby Lake CPUs. To facilitate out-of-the-box support on
    CURRENT, most of the branch-local VM changes were reverted and the
    graphics fault routines converted to use pg_populate. This new
    interface is the source of a couple of regressions causing panics on
    i915 and severe artifacts with amdgpu on integrated GPUs. Mark Johnston
    (markj@) has volunteered to analyze these issues. Please show your
    support and encouragement to Mark for helping to move this project
    towards the finish line.

    The xserver-mesa-next-udev branch was created for the ports development
    repository, and holds Mesa 13.0 and fixes for newer AMD GPUs. It uses a
    fork of the libudev-devd shim, also bringing Mesa closer to the Linux
    upstream. I plan to keep updating drm and amdgpu (for use on my desktop
    and potentially longer term for GPGPU computations) as well as work
    with Mark to address the existing bugs in i915 (assuming that two new
    porters are approved). However, the Linux i915 developers seem to
    aggressively explore the space of possible implementations and use of
    Linux internal APIs, making it prohibitively time consuming to track
    upstream. I am helping someone to learn the ropes of how to replay a
    subset of changes from a Linux release into FreeBSD in the hope that he
    will take over the mantle of drm-next i915 maintainer. Assuming the

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lorenzo Salvadore@21:1/5 to All on Mon Jan 27 21:00:00 2020
    FreeBSD Project Quarterly Status Report - Fourth Quarter 2019

    Here is the last quarterly status report for 2019. As you might
    remember from last report, we changed our timeline: now we collect
    reports the last month of each quarter and we edit and publish the full
    document the next month. Thus, we cover here the period October 2019 -
    December 2019.

    If you thought that the FreeBSD community was less active in the
    Christmas' quarter you will be glad to be proven wrong: a quick glance
    at the summary will be sufficient to see that much work has been done
    in the last months.

    Have a nice read!

    -- Lorenzo Salvadore
    __________________________________________________________________

    FreeBSD Team Reports

    * FreeBSD Core Team
    * FreeBSD Foundation
    * FreeBSD Release Engineering Team
    * Cluster Administration Team
    * Continuous Integration

    Projects

    * IPSec Extended Sequence Number (ESN) support
    * NFS Version 4.2 implementation
    * DTS Update
    * RockChip Support
    * Creating virtual FreeBSD appliances from RE VMDK images

    Kernel

    * SoC audio framework and RK3399 audio drivers
    * FreeBSD on Microsoft HyperV and Azure
    * FreeBSD on EC2 ARM64
    * ENA FreeBSD Driver Update

    Architectures

    * PowerPC on Clang
    * NXP ARM64 SoC support

    Userland Programs

    * Linux compatibility layer update

    Ports

    * Ports Collection
    * KDE on FreeBSD
    * Java on FreeBSD
    * Electron and VSCode
    * Bastille
    * Universal Packaging Tool (upt)
    * Wine on FreeBSD

    Third-Party Projects

    * sysctlbyname-improved
    * pot and the nomad pot driver
    * 7 Days Challenge
    * NomadBSD
    __________________________________________________________________

    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.
    * Julie Saravanos, the sister of Bruce D. Evans (bde), mailed core
    with the sad news that Bruce passed away on 2019-12-18 at the age
    of 68 years. Bruce was a deeply respected member of the community,
    served on the Core team, and made over 5,000 commits. Bruce's
    impact on our culture was so profound that new terminology was
    spawned. This is an excerpt of a message from Poul-Henning Kamp to
    Julie.

    I don't know precisely when I first communicated with Bruce, it was
    in the late 1980'ies via "UseNET", but I can say with certainty that
    few people have inspired me more, or improved my programming more,
    than Bruce he did over the next half of my life.
    All large projects invent its own vocabulary and in FreeBSD two of
    the neologisms are "Brucification", and "Brucified".
    A "brucification" meant receiving a short, courteous note pointing
    out a sometimes subtle deficiency, or an overlooked detail in a
    source code change. Not necessarily a serious problem, possibly not
    even a problem to anybody at all, but nonetheless something which
    was wrong and ought to be fixed. It was not uncommon for the
    critique to be considerably longer than the change in question.
    If one ignored brucifications one ran the risk of being "brucified",
    which meant receiving a long and painstakingly detailed list of
    every single one of the errors, mistakes, typos, shortcomings, bad
    decisions, questionable choices, style transgressions and general
    sloppiness of thinking, often expressed with deadpan humor sharpened
    to a near-fatal point.
    The most frustrating thing was that Bruce would be perfectly
    justified and correct. I can only recall one or two cases where I
    were able to respond "Sorry Bruce, but you're wrong there..." - and
    I confess that on those rare days I felt like I should cut a notch
    in my keyboard.
    The last email we received from Bruce is a good example of the depth
    of knowledge and insight he provided for the project:
    https://docs.freebsd.org/cgi/getmsg.cgi?fetch=1163414+0+archive/2019/svn-src-all/20191027.svn-src-all
    * The 12.1 release was dedicated to another FreeBSD developer who
    passed away in the fourth quarter of 2019, Kurt Lidl. The FreeBSD
    Foundation has a memorial page to Kurt.
    https://www.freebsdfoundation.org/blog/in-memory-of-kurt-lidl/
    We send our condolences to both the families of Bruce and Kurt.
    * Core has documented The Project's policy on support tiers.
    https://www.freebsd.org/doc/en_US.ISO8859-1/articles/committers-guide/archs.html
    * Core approved a source commit bit for James Clarke. Brooks Davis
    (brooks) will mentor James and John Baldwin (jhb) will co-mentor.
    * The Project's first Season of Docs ended with a negative result.
    The work was not completed and contact could not be established
    with the writer. No payment was made and the financing was set
    aside for future work.
    * Google Summer of Code completed. Information about the seven
    accepted projects can be found on the wiki page.
    https://wiki.freebsd.org/SummerOfCode2019Projects
    * Adam Weinberger (admaw) was added to conduct@. Adam has
    demonstrated competence, understanding, and fairness in personal
    matters.
    * Li-Wen Hsu (lwhsu) contacted Core after receiving a report from
    concerned local community members about past updates to The
    Project's internationalization policy. Lengthy discussions took
    place to determine how to reaffirm that The Project maintains a
    neutral position in political disputes. Updates were made to the
    document and it was decided that any future changes would require
    explicit Core approval.
    https://www.freebsd.org/internal/i18n.html
    * After nomination by Edward NapieraƂa (trasz), core voted to grant
    Daniel Ebdrup (debdrup) and Lorenzo Salvadore (salvadore)
    membership in The Project. Both Daniel and Lorenzo have been
    working on the quarterly reports for the past few quarters.
    * The Core-initiated Git Transition Working Group continued to meet
    over the last quarter of 2019. Their report is still forthcoming.
    __________________________________________________________________

    FreeBSD Foundation

    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. Funding comes from individual and corporate donations and is
    used to fund and manage software development projects, conferences and
    developer summits, and provide travel grants to FreeBSD contributors.
    The Foundation purchases and supports hardware to improve and maintain
    FreeBSD infrastructure and provides resources to improve security,
    quality assurance, and release engineering efforts; publishes marketing
    material to promote, educate, and advocate for the FreeBSD Project;
    facilitates collaboration between commercial vendors and FreeBSD
    developers; and finally, represents the FreeBSD Project in executing
    contracts, license agreements, and other legal arrangements that
    require a recognized legal entity.

    Here are some highlights of what we did to help FreeBSD last quarter:

    Partnerships and Commercial User Support

    We help facilitate collaboration between commercial users and FreeBSD
    developers. We also meet with companies to discuss their needs and
    bring that information back to the Project. In Q4, Ed Maste and Deb
    Goodkin met with a few commercial users in the US. It's not only
    beneficial for the above, but it also helps us understand some of the
    applications where FreeBSD is used. We were also able to meet with a
    good number of commercial users at the Bay Area Vendor/Developer Summit
    and Open Source Summit Europe. These venues provide an excellent
    opportunity to meet with commercial and individual users and
    contributors to FreeBSD.

    Fundraising Efforts

    In 2019, we focused on supporting a few key areas where the Project
    needed the most help. The first area was software development. Whether
    it was contracting FreeBSD developers to work on projects like wifi
    support, to providing internal staff to quickly implement hardware
    workarounds, we've stepped in to help keep FreeBSD innovative, secure,
    and reliable. Software development includes supporting the tools and
    infrastructure that make the development process go smoothly, and we're
    on it with team members heading up the Continuous Integration efforts,
    and actively involved in the clusteradmin and security teams.

    Our advocacy efforts focused on recruiting new users and contributors
    to the Project. We attended and participated in 38 conferences and
    events in 21 countries. From giving FreeBSD presentations and workshops
    to staffing tables, we were able to have 1:1 conversations with
    thousands of attendees.

    Our travels also provided opportunities to talk directly with FreeBSD
    commercial and individual users, contributors, and future FreeBSD
    users/contributors. We've seen an increase in use and interest in
    FreeBSD from all of these organizations and individuals. These meetings
    give us a chance to learn more about what organizations need and what
    they and other individuals are working on. The information helps inform
    the work we should fund.

    In 2019, your donations helped us continue our efforts of supporting
    critical areas of FreeBSD such as:
    * Operating System Improvements: Providing staff to immediately
    respond to urgent problems and implement new features and
    functionality allowing for the innovation and stability you've come
    to rely on.
    * Improving and increasing test coverage, continuous integration, and
    automated testing with a full-time software engineer to ensure you
    receive the highest quality, secure, and reliable operating system.
    * Security: Providing engineering resources to bolster the capacity
    and responsiveness of the Security team providing you with peace of
    mind when security issues arise.
    * Growing the number of FreeBSD contributors and users from our
    global FreeBSD outreach and advocacy efforts, including expanding
    into regions such as China, India, Africa, and Singapore.
    * Offering FreeBSD workshops and presentations at more conferences,
    meetups, and universities around the world.
    * Providing opportunities such as developer and vendor summits and
    company visits to help facilitate collaboration between commercial
    users and FreeBSD developers, as well as helping to get changes
    pushed into the FreeBSD source tree, and creating a bigger and
    healthier ecosystem.

    We've accomplished a lot this year, but we are still only a small
    501(c)3 organization focused on supporting FreeBSD and not a trade
    organization like many other open source Foundations.

    Please consider making a donation at
    https://www.FreeBSDfoundation.org/donate/ to help us continue and
    increase our support for FreeBSD.

    We also have the Partnership Program, to provide more benefits for our
    larger commercial donors. Find out more information at
    https://www.FreeBSDfoundation.org/FreeBSD-foundation-partnership-program/
    and share with your companies!

    OS Improvements

    The Foundation supports software development projects to improve
    FreeBSD through our full time technical staff, contractors, and project
    grant recipients. They maintain and improve critical kernel subsystems,
    add new features and functionality, and fix bugs.

    Between October and December there were 236 commits to the FreeBSD
    source repository tagged with FreeBSD Foundation sponsorship. This is
    about 10% of all commits during this period. Some of these projects
    have their own entries in the quarterly report, and are not repeated
    here, while others are briefly described below.

    As usual, Foundation staff member Konstantin Belousov committed a large
    number of UFS, NFS, tmpfs, VM system, and low-level Intel x86 bug fixes
    and improvements. Kostik also committed improvements to the run-time
    linker (rtld), and participated in very many code reviews, helping to
    get changes from other developers integrated into the tree.

    Following on from his work to improve debugging tools in the
    Linuxulator environment, Edward NapieraƂa integrated the Linux Test
    Project (LTP) with FreeBSD's CI system, and committed a number of small
    bug fixes to the Linuxulator itself.

    Mark Johnston continued working on infrastructure for the Syzkaller
    system call fuzzing tool, and committed fixes for many issues
    identified by it. Mark committed improvements to RISC-V infrastructure,
    the network stack, performance and locking, and x86 pmap.

    Mark also added support for newer Intel WiFi chipsets to the iwm
    driver, enabling WiFi support for the Lenovo X1 Carbon 7th generation,
    and other contemporary laptops.

    Ed Maste committed a number of improvements and cleanups in build
    infrastructure, vt console fixes including issues with keyboard maps,
    some blacklistd updates, documentation updates, and other small
    changes. Ed also committed some work to prepare for the removal of GCC
    4.2.1 from the FreeBSD source tree, currently planned for Q1 2020.

    Continuous Integration and Quality Assurance

    The Foundation provides a full-time staff member who is working on
    improving our automated testing, continuous integration, and overall
    quality assurance efforts.

    During the fourth quarter of 2019, Foundation staff continued to
    improve the project's CI infrastructure, worked with contributors to
    fix the failing build and test cases. We worked with other teams in the
    project for their testing needs and also worked with many external
    projects and companies to improve their support of FreeBSD. We added
    several new CI jobs and brought the FreeBSD Hardware Testing Lab
    online.

    We published 2019 in Review: CI and Testing Advancements on the
    Foundation's blog.

    See the FreeBSD CI section of this report for completed work items and
    detailed information.

    Supporting FreeBSD Infrastructure

    The Foundation provides hardware and support to improve the FreeBSD
    infrastructure. Last quarter, we continued supporting FreeBSD hardware
    located around the world.

    FreeBSD Advocacy and Education

    A large part of our efforts are dedicated to advocating for the
    Project. This includes promoting work being done by others with
    FreeBSD; producing advocacy literature to teach people about FreeBSD
    and help make the path to starting using FreeBSD or contributing to the
    Project easier; and attending and helping other FreeBSD contributors
    volunteer to run FreeBSD events, staff FreeBSD tables, and give FreeBSD
    presentations.

    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, to work together on projects, and to facilitate
    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.

    Check out some of the advocacy and education work we did last quarter:
    * Organized the 2019 Bay Area FreeBSD Vendor and Developers Summit in
    Santa Clara, CA
    * Presented at COSCON '19 in Shanghai, China
    * Represented FreeBSD at All Things Open 2019, in Raleigh, North
    Carolina
    * Industry Partner Sponsor for LISA '19 in Portland, OR
    * Silver Sponsor of OpenZFS in San Francisco, CA
    * Gave a technical presentation at School of Mines in Golden, CO
    * Presenting and representing FreeBSD at Seagl, in Seattle, WA
    * Presented at Open Source Summit Europe in Lyon France
    * Committed to sponsoring LinuxConfAu 2020, in Gold Coast, Australia
    in addition to holding a FreeBSD Mini-Conf
    * Accepted to present at the BSD Dev Room at FOSDEM '20, in Brussels,
    Belgium
    * Accepted to have a stand at FOSDEM '20, in Brussels, Belgium
    * Committed to sponsoring FOSSASIA 2020, in Singapore
    * Committed to hold FreeBSD Day at SCALE 18x, in Pasadena, CA

    We continued producing FreeBSD advocacy material to help people promote
    FreeBSD. Learn more about our efforts in 2019 to advocate for FreeBSD:
    https://www.freebsdfoundation.org/blog/2019-in-review-advocacy/

    Our Faces of FreeBSD series is back. Check out the latest post: Mahdi
    Mokhtari.
    https://www.freebsdfoundation.org/blog/faces-of-freebsd-2019-mahdi-mokhtari/

    Read more about our conference adventures in the conference recaps and
    trip reports in our monthly newsletters:
    https://www.freebsdfoundation.org/news-and-events/newsletter/

    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/.

    We have continued our work with a new website developer to help us
    improve our website. Work has begun to make it easier for community
    members to find information more easily and to make the site more
    efficient.

    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 http://www.FreeBSDfoundation.org to find out how we support
    FreeBSD and how we can help you!
    __________________________________________________________________

    FreeBSD Release Engineering Team

    Links
    FreeBSD 12.1-RELEASE schedule
    URL: https://www.freebsd.org/releases/12.1R/schedule.html
    FreeBSD 12.1-RELEASE announcement
    URL: https://www.freebsd.org/releases/12.1R/announce.html
    FreeBSD development snapshots
    URL: https://download.freebsd.org/ftp/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.

    The FreeBSD Release Engineering Team continued work on the
    12.1-RELEASE, which started September 6th. This release cycle was the
    first "freeze-less" release from the Subversion repository, and the
    test bed for eliminating the requirement of a hard code freeze on
    development branches.

    The 12.1-RELEASE cycle concluded with the final build beginning
    November 4th, preceded by three BETA builds and two RC builds. The RC3
    build had been included in the original schedule, but had been decided
    to not be required.

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

    Much of this work was sponsored by Rubicon Communications, LLC
    (netgate.com) and the FreeBSD Foundation.
    __________________________________________________________________

    Cluster Administration Team

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

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

    The FreeBSD Cluster Administration Team consists of the people
    responsible for administering the machines that the Project relies on
    for its distributed work and communications to be synchronised. In this
    quarter, the team has worked on the following:
    * Upgrade ref11-{amd64,i386}.freebsd.org to 11.3-STABLE r353313
    * Ongoing systems administration work:
    * Creating accounts for new committers.
    * Backups of critical infrastructure.
    * Keeping up with security updates in 3rd party software.

    Work in progress:
    * Review the service jails and service administrators operation.
    * South Africa Mirror (JINX) in progress.
    * NVME issues on PowerPC64 Power9 blocking dual socket machine from
    being used as pkg builder.
    * Drive upgrade test for pkg builders (SSDs) courtesy of the FreeBSD
    Foundation.
    * Boot issues with Aarch64 reference machines.
    * New NYI.net sponsored colocation space in Chicago-land area.
    * Setup new host for CI staging environment.
    * Plan how to add new semi-official pkg mirrors
    __________________________________________________________________

    Continuous Integration

    Links
    FreeBSD Jenkins Instance
    URL: https://ci.FreeBSD.org
    FreeBSD Hardware Testing Lab
    URL: https://ci.FreeBSD.org/hwlab
    FreeBSD CI artifact archive
    URL: https://artifact.ci.FreeBSD.org
    FreeBSD CI weekly report
    URL: https://hackmd.io/@FreeBSD-CI
    freebsd-testing Mailing List
    URL: https://lists.FreeBSD.org/mailman/listinfo/freebsd-testing
    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

    Contact: Jenkins Admin <jenkins-admin@FreeBSD.org>
    Contact: Li-Wen Hsu <lwhsu@FreeBSD.org>

    The FreeBSD CI team maintains continuous integration system and related
    tasks for the FreeBSD project. The CI system regularly checks the
    committed changes can be successfully built, then performs various
    tests and analysis of the results. The results from build jobs are
    archived in an artifact server, for the 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. The details are of these efforts are available in
    the weekly CI reports.

    During the fourth quarter of 2019, we worked with the contributors and
    developers in the project for their testing needs and also worked with
    many external projects and companies to improve their support of
    FreeBSD. The FreeBSD Hardware Testing Lab is online in this quarter.
    It's still in work in progress stage and we are merging the different
    versions and will integrate more tightly to the main CI server. We are
    also working on make this work more easierly to be reproduced.

    Work in progress:
    * Collecting and sorting CI tasks and ideas at
    https://hackmd.io/bWCGgdDFTTK_FG0X7J1Vmg
    * Setup the CI stage environment and put the experimental jobs on it
    * Implementing automatic tests on bare metal hardware
    * Adding drm ports building test against -CURRENT
    * Testing and merging pull requests at
    https://github.com/freebsd/freebsd-ci/pulls
    * Planning for running ztest and network stack tests
    * Helping more 3rd software get CI on FreeBSD through a hosted CI
    solution
    * Adding LTP test jobs.
    * Adding non-x86 test jobs.
    * Adding external toolchin related jobs.

    Please see freebsd-testing@ related tickets for more WIP information.

    This project was sponsored by The FreeBSD Foundation.
    __________________________________________________________________

    Projects

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

    IPSec Extended Sequence Number (ESN) support

    Contact: Patryk Duda <pdk@semihalf.com>
    Contact: Marcin Wojtas <mw@semihalf.com>

    Extended Sequence Number (ESN) is IPSec extension defined in RFC4303
    Section 2.2.1. It makes possible to implement high-speed IPSec
    implementations where standard, 32-bit sequence number is not
    sufficent. Key feature of the ESN is that only low order 32 bits of
    sequence number are transmitted over the wire. High-order 32 bits are
    maintained by sender and receiver. Additionally high-order bits are
    included in the computation of Integrity Check Value (ICV) field.

    Extended Sequence Number support contains following:
    * Modification of existing anti-replay algorithm to fulfil ESN
    requirements
    * Trigger soft lifetime expiration at 80% of UINT32_MAX when ESN is
    disabled
    * Implement support for including ESN into ICV in cryptosoft engine
    in both encrypt and authenticate mode (eg. AES-CBC and SHA256 HMAC)
    and combined mode (eg. AES-GCM)
    * Implement support for including ESN into ICV in AES-NI engine in
    both encrypt and authenticate mode and combined mode

    Remaining work:
    * Upstream patches of the anti-replay algorithm
    * Adjust implementation of crypto part after the reworked Open Crypto
    Framework gets stable

    This project was sponsored by Stormshield.
    __________________________________________________________________

    NFS Version 4.2 implementation

    Contact: Rick Macklem <rmacklem@freebsd.org>

    RFC-7862 describes a new minor revision to the NFS Version 4 protocol.
    This project implements this new minor revision.

    The NFS Version 4 Minorversion 2 protocol adds several optional
    features to NFS, such as support for SEEK_DATA/SEEK_HOLE, file copying
    done on the server that avoids data transfer over the wire and support
    for posix_fallocate(), posix_fadvise(). Hopefully these features can
    improve performance for certain applications.

    This project has basically been completed. The code changes have now
    all been committed to head/current and should be released in FreeBSD
    13.

    Testing by others would be appreciated. To do testing, an up to date
    head/current system is required. Client mounts need the
    "minorversion=2" mount option to enable this protocol. The NFS server
    will have NFSv4.2 enabled by default.
    __________________________________________________________________

    DTS Update

    Contact: Emmanuel Vadot <manu@FreeBSD.org>

    DTS files (Device Tree Sources) were updated to be on par with Linux
    5.4 for HEAD and 5.2 for the 12-STABLE branch. The DTS for the RISC-V
    architecture are now imported as well.
    __________________________________________________________________

    RockChip Support

    Contact: <freebsd-arm@FreeBSD.Org>
    Contact: Emmanuel Vadot <manu@FreeBSD.Org>
    Contact: Michal Meloun <mmel@FreeBSD.Org>

    RockChip RK3399 now has USB3 support, some configuration such as device
    mode are still not supported however host mode should work on any
    board.

    Support for SPI has been committed which enables ability to interact
    with SPI flash if present.

    All regulators for the RK808 PMIC (Power Management IC) have been
    added.

    All clocks are now supported which completes clock and reset
    implementation, previously only clocks from devices with drivers were
    supported.

    The TS-ADC (Temperature Sensor ADC) is now supported, this adds the
    ability to read temperature of the CPU and GPU via sysctl
    hw.temperature .

    Initial PCIe support has been committed and verified working on several
    different boards. Known working devices are NVMe devices and PCIe cards
    that doesn't utilize PCIe switching or bridge functionality.

    Card Detection for SDCard on RK3328 and RK3399 is now supported. There
    is still some problems if the board is using a GPIO for CD instead of
    the internal detection mechanism.
    __________________________________________________________________

    Creating virtual FreeBSD appliances from RE VMDK images

    Links
    freebsd-mkova
    URL: https://github.com/gonzoua/freebsd-mkova

    Contact: Oleksandr Tymoshenko <gonzo@FreeBSD.org>

    OVA is a file format for packaging and distributing virtual appliances:
    pre-configured virtual machine images. Virtual appliance file contains
    full VM information like the number of CPUs, amount of memory, list of
    virtual devices, it also includes disk images. Applications like
    VirtualBox or VMWare can import OVA files; this process can be easily
    automated.

    freebsd-mkova is a CLI tool to create OVA files using VMDK images
    provided by FreeBSD RE. For now, only a limited set of attributes can
    be specified: VM name, number of CPU, amount of memory, and disk size.
    The tool also does only cursory sanity checks on the VMDK file format,
    assuming it's a monolithic sparse file and that it has to be converted
    to the stream-optimized format. The script can be extended to make
    hardware configuration more flexible and VMDK parser more robust.
    __________________________________________________________________

    Kernel

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

    SoC audio framework and RK3399 audio drivers

    Links
    rk3399_audio
    URL: https://github.com/gonzoua/freebsd/tree/rk3399_audio

    Contact: Oleksandr Tymoshenko <gonzo@FreeBSD.org>

    Most modern SoCs and devboards have audio support in one form or
    another, but it's one of the areas that are overlooked by FreeBSD
    driver developers. The most common architecture for the audio pipeline
    on a single-board computer consists of two DAIs (digital audio
    interfaces): CPU and codec, connected by a serial bus.

    CPU DAI is a SoC IP block that operates with samples: obtains them from
    the driver for playback or provides them to the driver for recording
    through FIFOs or DMA requests. Audio samples leave (or arrive at) the
    SoC through a serial bus, usually I2S, that is connected to Codec DAI.

    Codec DAI is an external (to the SoC) chip that packs one or more
    DAC/ADC blocks along with mixers, amplifiers, and probably more
    specialized devices like filters and/or sound effects. The analog part
    of the codec is connected to microphones/headphones/speakers. On SBCs,
    the codec usually communicates with SoC through two interfaces: data
    path, over which audio samples travel, and a control interface that is
    used to read/write chip registers and configure its behavior. The most
    common choices for these are I2S and I2C buses, respectively.

    For FDT-enabled devices, an audio pipeline is described as a virtual
    DTB node that has links to the CPU and codec device(s), and which
    specifies the data format, and clock details that both the CPU and the
    codec chips would use. It also may have more than one CPU/codec pair.

    Using Firefly-RK3399 as a test device, I was able to implement I2S
    driver for RK3399 SoC (PIO mode, playback only), the driver for
    Realtek's RT5640 chip (headphones playback only + mixer controls) and a
    base outline of SoC audio framework. Some bits of rk_i2s and the
    framework were ported from the NetBSD code developed by Jared McNeill.
    On my WIP branch, I can play mp3 audio and control playback volume.

    The primary missing functionalities at the moment are recording
    support, multi-link audio cards, DMA support. The most critical among
    these is DMA support. In the current implementation, all buffer
    management is placed at the ausoc layer, which is not going to work for

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)