aboutsummaryrefslogtreecommitdiff
path: root/website/content/en/status/report-2015-10-2015-12.html
diff options
context:
space:
mode:
Diffstat (limited to 'website/content/en/status/report-2015-10-2015-12.html')
-rw-r--r--website/content/en/status/report-2015-10-2015-12.html3387
1 files changed, 0 insertions, 3387 deletions
diff --git a/website/content/en/status/report-2015-10-2015-12.html b/website/content/en/status/report-2015-10-2015-12.html
deleted file mode 100644
index f32802619e..0000000000
--- a/website/content/en/status/report-2015-10-2015-12.html
+++ /dev/null
@@ -1,3387 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook">
- <head>
- <title>FreeBSD Quarterly Status Report</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- <link rel="shortcut icon" href="https://www.FreeBSD.org/favicon.ico" type="image/x-icon" />
- <link rel="stylesheet" media="screen,print" href="https://www.FreeBSD.org/layout/css/fixed.css?20130112" type="text/css" />
- <script type="text/javascript" href="https://www.FreeBSD.org/layout/js/google.js"></script>
- </head>
- <body>
- <div id="containerwrap">
- <div id="container">
- <span class="txtoffscreen"><a href="#content" title="Skip site navigation" accesskey="1">Skip site navigation</a> (1)
- <a href="#contentwrap" title="Skip section navigation" accesskey="2">Skip section navigation</a> (2)
-</span>
- <div id="headercontainer">
- <div id="header">
- <h2 class="blockhide">Header And Logo</h2>
- <div id="headerlogoleft">
- <a href="../.." title="FreeBSD">
- <img src="https://www.FreeBSD.org/layout/images/logo-red.png" width="457" height="75" alt="FreeBSD" />
- </a>
- </div>
- <div id="headerlogoright">
- <div class="frontdonateroundbox">
- <div class="frontdonatetop">
- <div>
- <b style="display: none;">.</b>
- </div>
- </div>
- <div class="frontdonatecontent">
- <a href="https://www.FreeBSDFoundation.org/donate/">Donate to FreeBSD</a>
- </div>
- <div class="frontdonatebot">
- <div>
- <b style="display: none;">.</b>
- </div>
- </div>
- </div>
- <h2 class="blockhide">Peripheral Links</h2>
- <div id="searchnav">
- <ul id="searchnavlist"></ul>
- </div>
- <div id="search">
- <form method="get" id="search-form" action="https://duckduckgo.com/" onsubmit="document.getElementById('words').value+=' (site:www.FreeBSD.org OR site:docs.FreeBSD.org OR site:lists.FreeBSD.org OR site:wiki.FreeBSD.org OR site:forums.FreeBSD.org)'">
- <h2 class="blockhide">
- <label for="words">Search</label>
- </h2>
- <input type="hidden" name="ka" value="v" />
- <input type="hidden" name="kt" value="v" />
- <input type="hidden" name="kh" value="1" />
- <input type="hidden" name="kj" value="r2" />
- <input id="words" name="q" type="text" size="20" maxlength="255" onfocus="if( this.value==this.defaultValue ) this.value='';" value="Search" />
- <span> </span>
- <input id="submit" name="submit" type="submit" value="Search" />
- </form>
- </div>
- </div>
- </div>
- <h2 class="blockhide">Site Navigation</h2>
- <div id="menu">
- <ul class="first">
- <li>
- <a href="../../">Home</a>
- </li>
- </ul>
- <ul>
- <li>
- <a href="../../about.html">About</a>
- <ul>
- <li>
- <a href="../../projects/newbies.html">Introduction</a>
- </li>
- <li>
- <a href="../../features.html">Features</a>
- </li>
- <li>
- <a href="../../advocacy/">Advocacy</a>
- </li>
- <li>
- <a href="../../marketing/">Marketing</a>
- </li>
- <li>
- <a href="../../privacy.html">Privacy Policy</a>
- </li>
- </ul>
- </li>
- </ul>
- <ul>
- <li>
- <a href="../../where.html">Get FreeBSD</a>
- <ul>
- <li>
- <a href="../../releases/">Release Information</a>
- </li>
- <li>
- <a href="../../releng/">Release Engineering</a>
- </li>
- </ul>
- </li>
- </ul>
- <ul>
- <li>
- <a href="../../docs.html">Documentation</a>
- <ul>
- <li>
- <a href="../../doc/en_US.ISO8859-1/books/faq/">FAQ</a>
- </li>
- <li>
- <a href="../../doc/en_US.ISO8859-1/books/handbook/">Handbook</a>
- </li>
- <li>
- <a href="../../doc/en_US.ISO8859-1/books/porters-handbook">Porter's Handbook</a>
- </li>
- <li>
- <a href="../../doc/en_US.ISO8859-1/books/developers-handbook">Developer's Handbook</a>
- </li>
- <li>
- <a href="//www.FreeBSD.org/cgi/man.cgi">Manual Pages</a>
- </li>
- <li>
- <a href="https://papers.FreeBSD.org">Presentations and Papers</a>
- </li>
- <li>
- <a href="../../doc/en_US.ISO8859-1/books/fdp-primer">Documentation Project Primer</a>
- </li>
- <li>
- <a href="../../docs/books.html">All Books and Articles</a>
- </li>
- </ul>
- </li>
- </ul>
- <ul>
- <li>
- <a href="../../community.html">Community</a>
- <ul>
- <li>
- <a href="../../community/mailinglists.html">Mailing Lists</a>
- </li>
- <li>
- <a href="https://forums.FreeBSD.org">Forums</a>
- </li>
- <li>
- <a href="../../usergroups.html">User Groups</a>
- </li>
- <li>
- <a href="../../events/events.html">Events</a>
- </li>
- <li>
- <a href="http://freebsdjournal.com">FreeBSD Journal</a>
- </li>
- <li>
- <a href="http://serverfault.com/questions/tagged/freebsd">Q&amp;A (external)</a>
- </li>
- </ul>
- </li>
- </ul>
- <ul>
- <li>
- <a href="../../projects/index.html">Developers</a>
- <ul>
- <li>
- <a href="https://wiki.FreeBSD.org/IdeasPage">Project Ideas</a>
- </li>
- <li>
- <a href="https://cgit.FreeBSD.org">Git Repository</a>
- </li>
- <li>
- <a href="https://svnweb.FreeBSD.org">Subversion Repository</a>
- </li>
- <li>
- <a href="https://github.com/freebsd">GitHub Mirror</a>
- </li>
- <li>
- <a href="https://reviews.FreeBSD.org">Code Review (Phabricator)</a>
- </li>
- <li>
- <a href="https://wiki.FreeBSD.org">Wiki</a>
- </li>
- <li>
- <a href="https://ci.FreeBSD.org">Continuous Integration Service</a>
- </li>
- </ul>
- </li>
- </ul>
- <ul>
- <li>
- <a href="../../support.html">Support</a>
- <ul>
- <li>
- <a href="../../commercial/commercial.html">Vendors</a>
- </li>
- <li>
- <a href="../../security/">Security Information</a>
- </li>
- <li>
- <a href="https://bugs.FreeBSD.org/search/">Bug Reports</a>
- </li>
- <li>
- <a href="https://www.FreeBSD.org/support.html">Submitting Bug Reports</a>
- </li>
- </ul>
- </li>
- </ul>
- <ul>
- <li>
- <a href="https://www.freebsdfoundation.org/">Foundation</a>
- <ul>
- <li>
- <a href="https://www.freebsdfoundation.org/donate/">Monetary Donations</a>
- </li>
- <li>
- <a href="../../donations/index.html#systems">Hardware Donations</a>
- </li>
- </ul>
- </li>
- </ul>
- </div>
- </div>
- <div id="content">
- <div id="sidewrap">
- <div id="sidenav">
- <h2 class="blockhide">Section Navigation</h2>
- <ul>
- <li>
- <a href="../../about.html">About</a>
- </li>
- <li>
- <a href="../../features.html">Features</a>
- </li>
- <li>
- <a href="../../applications.html">Applications</a>
- </li>
- <li>
- <a href="../../advocacy/">Advocacy</a>
- </li>
- <li>
- <a href="../../marketing/">Marketing</a>
- </li>
- <li>
- <a href="../../administration.html">Administration</a>
- </li>
- <li>
- <a href="../../news/newsflash.html">News</a>
- </li>
- <li>
- <a href="../../events/events.html">Events</a>
- </li>
- <li>
- <a href="../../news/press.html">Press</a>
- </li>
- <li>
- <a href="../../multimedia/multimedia.html">Multimedia</a>
- </li>
- <li>
- <a href="../../art.html">Artwork</a>
- </li>
- <li>
- <a href="../../logo.html">Logo</a>
- </li>
- <li>
- <a href="../../donations/">Donations</a>
- </li>
- <li>
- <a href="../../copyright/">Legal Notices</a>
- </li>
- <li>
- <a href="../../privacy.html">Privacy Policy</a>
- </li>
- </ul>
- </div>
- </div>
- <div id="contentwrap"><h1>Introduction</h1><p>The fourth quarter of 2015 saw a great deal of activity for
- FreeBSD. This is now the third quarter running for which I can say
- that this is the largest report yet published! Many thanks to
- everyone who proactively submitted topics and entries &#8212; it
- is great to have more complete coverage of ongoing development for
- the community to learn about in these reports.</p><p>An experimental new Triage Team was formed this quarter to
- create a new way for community members to participate,
- and to improve issue management and productivity in general.
- Making more effective use of automation
- and tooling can help to increase developer productivity and the
- quality of FreeBSD, just as the adoption of Jenkins and continual
- integration tooling catches regressions quickly and maintains the
- high standards for the system.</p><p>Efforts to bring our BSD high standards to new
- architectures continue, with impressive work on arm64 leading to
- its promotion to Tier-2 status and a flurry of work bringing up
- the new RISC-V hardware architecture. Software architecture is
- also under active development, including system startup and
- service management. A handful of potential init system
- replacements are mentioned in this report: <tt>launchd</tt>,
- <tt>relaunchd</tt>, and <tt>nosh</tt>. Architectural changes
- originating both from academic research (multipath TCP) and from
- the realities of industry (<tt>sendfile(2)</tt> improvements) are
- also under way. It is heartening to see how FreeBSD provides a
- welcoming platform for contributions from both research and
- industry.</p><p>To all the readers, whether from academia or industry,
- hobbyist or professional: I hope you are as excited as I am to
- read about all of the progress and projects covered in this
- report, and the future of FreeBSD!</p><p>&#8212;Ben Kaduk</p><p><hr /></p><p>The deadline for submissions covering the period from January
- to March 2016 is April 7, 2016.</p><hr /><h3><a href="#FreeBSD-Team-Reports">FreeBSD Team Reports</a></h3><ul><li><a href="#FreeBSD-Release-Engineering-Team">FreeBSD Release Engineering Team</a></li><li><a href="#Issue-Tracking-(Bugzilla)">Issue Tracking (Bugzilla)</a></li><li><a href="#The-FreeBSD-Core-Team">The FreeBSD Core Team</a></li><li><a href="#The-FreeBSD-Issue-Triage-Team">The FreeBSD Issue Triage Team</a></li></ul><h3><a href="#Projects">Projects</a></h3><ul><li><a href="#CAM-I/O-Scheduler">CAM I/O Scheduler</a></li><li><a href="#Encrypted-Kernel-Crash-Dumps">Encrypted Kernel Crash Dumps</a></li><li><a href="#Jenkins-Continuous-Integration-for-FreeBSD">Jenkins Continuous Integration for FreeBSD</a></li><li><a href="#Mellanox-iSCSI-Extensions-for-RDMA-(iSER)-Support">Mellanox iSCSI Extensions for RDMA (iSER) Support</a></li><li><a href="#MIPS:-Ralink/Mediatek-Support">MIPS: Ralink/Mediatek Support</a></li><li><a href="#Multipath-TCP-for-FreeBSD">Multipath TCP for FreeBSD</a></li><li><a href="#OpenBSM">OpenBSM</a></li><li><a href="#Raspberry-Pi:-VideoCore-Userland-Application-Packaging">Raspberry Pi: VideoCore Userland Application
- Packaging</a></li><li><a href="#RCTL-Disk-IO-Limits">RCTL Disk IO Limits</a></li><li><a href="#Root-Remount">Root Remount</a></li><li><a href="#Routing-Stack-Update">Routing Stack Update</a></li><li><a href="#The-Graphics-Stack-on-FreeBSD">The Graphics Stack on FreeBSD</a></li><li><a href="#The-nosh-Project">The nosh Project</a></li><li><a href="#UEFI-Boot-and-Framebuffer-Support">UEFI Boot and Framebuffer Support</a></li></ul><h3><a href="#Kernel">Kernel</a></h3><ul><li><a href="#Chelsio-iSCSI-Offload-Driver-(Initiator-and-Target)">Chelsio iSCSI Offload Driver (Initiator and Target)</a></li><li><a href="#FreeBSD-Integration-Services-(BIS)">FreeBSD Integration Services (BIS)</a></li><li><a href="#FreeBSD-Xen">FreeBSD Xen</a></li><li><a href="#Improvements-to-the-QLogic-HBA-Driver">Improvements to the QLogic HBA Driver</a></li><li><a href="#iMX.6-Video-Output-Support">iMX.6 Video Output Support</a></li><li><a href="#ioat(4)-Driver-Enhancements">ioat(4) Driver Enhancements</a></li><li><a href="#Kernel-Vnode-Cache-Tuning">Kernel Vnode Cache Tuning</a></li><li><a href="#Mellanox-Drivers">Mellanox Drivers</a></li><li><a href="#Minimal-Kernel-with-PNP-Based-Autoloading">Minimal Kernel with PNP-Based Autoloading</a></li><li><a href="#MMC-Stack-Under-CAM-Framework">MMC Stack Under CAM Framework</a></li><li><a href="#ntb_hw(4)/if_ntb(4)-Driver-Synced-up-to-Linux">ntb_hw(4)/if_ntb(4) Driver Synced up to
- Linux</a></li><li><a href="#Out-of-Memory-Handler-Rewrite">Out of Memory Handler Rewrite</a></li><li><a href="#sendfile(2)-Improvements">sendfile(2) Improvements</a></li><li><a href="#sysctl-Enhancements">sysctl Enhancements</a></li><li><a href="#Touchscreen-Support-for-Raspberry-Pi-and-Beaglebone-Black">Touchscreen Support for Raspberry Pi and Beaglebone
- Black</a></li></ul><h3><a href="#Architectures">Architectures</a></h3><ul><li><a href="#armv6-Hard-Float-Default-ABI">armv6 Hard Float Default ABI</a></li><li><a href="#FreeBSD-on-Marvell-Armada38x">FreeBSD on Marvell Armada38x</a></li><li><a href="#FreeBSD-on-Newer-ARM-Boards">FreeBSD on Newer ARM Boards</a></li><li><a href="#FreeBSD-on-SoftIron-Overdrive-3000">FreeBSD on SoftIron Overdrive 3000</a></li><li><a href="#FreeBSD/arm64">FreeBSD/arm64</a></li><li><a href="#FreeBSD/RISC-V">FreeBSD/RISC-V</a></li><li><a href="#Improvements-for-ARMv6/v7-Support">Improvements for ARMv6/v7 Support</a></li></ul><h3><a href="#Userland-Programs">Userland Programs</a></h3><ul><li><a href="#Base-System-Build-Improvements">Base System Build Improvements</a></li><li><a href="#ELF-Tool-Chain-Tools">ELF Tool Chain Tools</a></li><li><a href="#The-LLDB-Debugger">The LLDB Debugger</a></li><li><a href="#Updates-to-GDB">Updates to GDB</a></li></ul><h3><a href="#Ports">Ports</a></h3><ul><li><a href="#Bringing-GitLab-into-the-Ports-Collection">Bringing GitLab into the Ports Collection</a></li><li><a href="#GNOME-on-FreeBSD">GNOME on FreeBSD</a></li><li><a href="#IPv6-Promotion-Campaign">IPv6 Promotion Campaign</a></li><li><a href="#KDE-on-FreeBSD">KDE on FreeBSD</a></li><li><a href="#Linux-Kernel-as-a-Library-Added-to-the-Ports-Collection">Linux Kernel as a Library Added to the Ports
- Collection</a></li><li><a href="#LXQt-on-FreeBSD">LXQt on FreeBSD</a></li><li><a href="#New-Tools-to-Enhance-the-Porting-Experience">New Tools to Enhance the Porting Experience</a></li><li><a href="#Node.js-Modules">Node.js Modules</a></li><li><a href="#Ports-Collection">Ports Collection</a></li><li><a href="#Supporting-Variants-in-the-Ports-Framework">Supporting Variants in the Ports Framework</a></li><li><a href="#Xfce-on-FreeBSD">Xfce on FreeBSD</a></li></ul><h3><a href="#Documentation">Documentation</a></h3><ul><li><a href="#&quot;FreeBSD-Mastery:-Specialty-Filesystems&quot;-Early-Access-Version-Now-Available">"FreeBSD Mastery: Specialty Filesystems" Early Access Version Now Available</a></li><li><a href="#style(9)-Enhanced-to-Allow-C99-bool">style(9) Enhanced to Allow C99
- bool</a></li></ul><h3><a href="#Miscellaneous">Miscellaneous</a></h3><ul><li><a href="#HardenedBSD">HardenedBSD</a></li><li><a href="#NanoBSD-Modernization">NanoBSD Modernization</a></li><li><a href="#relaunchd">relaunchd</a></li><li><a href="#System-Initialization-and-Service-Management">System Initialization and Service Management</a></li><li><a href="#The-FreeBSD-Foundation">The FreeBSD Foundation</a></li></ul><ul></ul><hr /><br /><h1><a name="FreeBSD-Team-Reports" href="#FreeBSD-Team-Reports" id="FreeBSD-Team-Reports">FreeBSD Team Reports</a></h1><br /><h2><a name="FreeBSD-Release-Engineering-Team" href="#FreeBSD-Release-Engineering-Team" id="FreeBSD-Release-Engineering-Team">FreeBSD Release Engineering Team</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.freebsd.org/releases/10.3R/schedule.html" title="https://www.freebsd.org/releases/10.3R/schedule.html">FreeBSD 10.3-RELEASE schedule</a></td><td>
- URL: <a href="https://www.freebsd.org/releases/10.3R/schedule.html" title="FreeBSD 10.3-RELEASE schedule">https://www.freebsd.org/releases/10.3R/schedule.html</a></td></tr><tr><td><a href="http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/" title="http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/">FreeBSD Development Snapshots</a></td><td>
- URL: <a href="http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/" title="FreeBSD Development Snapshots">http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/</a></td></tr></table><p>
- Contact: FreeBSD Release Engineering Team &lt;<a href="mailto:re@FreeBSD.org">re@FreeBSD.org</a>&gt;
- </p>
- <p>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.</p>
-
- <p>During the last quarter of 2015, the Release Engineering team
- added support for three additional FreeBSD/arm systems:
- <tt>BANANAPI</tt>, <tt>CUBIEBOARD</tt>, and
- <tt>CUBIEBOARD2</tt>.</p>
-
- <p>In addition to regular development snapshot builds for
- FreeBSD 11.0-CURRENT and FreeBSD 10.2-STABLE, several
- changes and enhancements were made to the release build code.
- Of note, the release build code no longer produces MD5
- checksums, in favor of SHA512.</p>
-
- <p>Toward the end of the year, focus was primarily
- centered on the upcoming FreeBSD 10.3 release cycle,
- which will begin in January 2016.</p>
-
- <p>As always, help testing development snapshot builds is
- crucial to producing quality releases, and we encourage
- testing development snapshots whenever possible.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><hr /><h2><a name="Issue-Tracking-(Bugzilla)" href="#Issue-Tracking-(Bugzilla)" id="Issue-Tracking-(Bugzilla)">Issue Tracking (Bugzilla)</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://bugs.freebsd.org/bugzilla/" title="https://bugs.freebsd.org/bugzilla/">Bugzilla Home Page</a></td><td>
- URL: <a href="https://bugs.freebsd.org/bugzilla/" title="Bugzilla Home Page">https://bugs.freebsd.org/bugzilla/</a></td></tr></table><p>
- Contact: Bugmeisters &lt;<a href="mailto:bugmeister@FreeBSD.org">bugmeister@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Kubilay
- Kocak
- &lt;<a href="mailto:koobs@FreeBSD.org">koobs@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Mahdi
- Mokhtari
- &lt;<a href="mailto:mokhi64@gmail.com">mokhi64@gmail.com</a>&gt;
- </p>
- <p>The bugmeister team has gained a new member, Mahdi Mokhtari
- (mokhi64@gmail.com). Mahdi has been contributing to the FreeBSD
- Project for just over one month. After getting started by
- creating ports for Chef-Server and MySQL 5.7 (with Bernard
- Spil's help), an introduction to Kubilay Kocak led to guidance on
- appropriate projects, such as Bugzilla development to help
- Bugmeister, the Bugzilla Triage team, Developers, and the
- community by making issue tracking better. This is how things
- are going so far:</p>
-
- <p>Issue Tracking can be either "Defect Tracking for
- Systems" or "Bug-Tracking for Systems". System
- Defect Tracking is to allow individual or groups of developers
- to keep track of outstanding issues in their product
- effectively. We use Bugzilla to manage issues for the FreeBSD
- project.</p>
-
- <p>We are pleased to announce some developments on our issue
- management systems:</p>
-
- <ul>
- <li>We have made improvements to the AutoAssigner module
- (not yet deployed) that was previously developed by Marcus von Appen
- to assign port bugs to their maintainers by default, such
- as:
-
- <ul>
- <li>Improvements and bugfixes to port detection in
- the Summary: field of issues, for automatic assignment
- to their maintainers in a better way.</li>
-
- <li>Refactoring code to make future development easier
- and faster in a more modular way.</li>
- </ul>
- </li>
-
- <li>We have developed a new module (FBSDAttachment), which
- automates setting maintainer-approval flag values on
- attachments under most conditions. This will improve time
- to resolution, consistency of triage, and reduce manual
- effort by triagers and maintainers.</li>
-
- <li>We reported and upstreamed a number of bugs in Bugzilla,
- working with the upstream Bugzilla developers.</li>
- </ul>
- <h3>Open tasks:</h3><ol><li>
- <p>Major improvements to templates for usability and
- simplicity.</p>
- </li><li>
- <p>Further improvements to automation (for example,
- additional processing of commit logs).</p>
- </li></ol><hr /><h2><a name="The-FreeBSD-Core-Team" href="#The-FreeBSD-Core-Team" id="The-FreeBSD-Core-Team">The FreeBSD Core Team</a></h2><p>
- Contact: FreeBSD Core Team &lt;<a href="mailto:core@FreeBSD.org">core@FreeBSD.org</a>&gt;
- </p>
- <p>Two major issues have occupied much of core's attention
- during the last quarter: the reorganisation of the Security
- Team and the question of whether to import GPLv3 licensed code
- into the source repository.</p>
-
- <ol>
- <li>
- <p>The idea of reorganizing the Security team was first
- proposed to Core during a meeting at BSDCan this year by
- Gleb Smirnoff &#8212; core member and newly-appointed
- deputy Security Officer (SO). The "Security
- Team", which previously could contain several people
- (a varying number over time, but more than two) has been
- refashioned into just two roles: Security Officer and
- Deputy Security Officer. Accordingly, the role of the SO
- team has been redefined to be the controller of the
- distribution of security sensitive information into and
- within the project: they are responsible for interfacing
- with external bodies and individuals reporting security
- problems to the project, and connecting those reports to
- the appropriate individuals within the project with the
- technical expertise to address the identified concerns.
- These changes will improve the project's responsiveness to
- security alerts, help maintain security on privileged
- information received in confidence before general
- publication and, not least, reduce the work load on the
- security officer. The SO team will continue to benefit
- from liasons with the Core, Cluster Administration, and
- Release Engineering teams, and will be assisted by a
- secretary; they will also be able to obtain input and
- assistance in drafting security advisories from former and
- potential future (Deputy) Security Officers.</p>
-
- <p>Core would particularly like to thank the former members
- of the Security Team group for their past contributions,
- now that the Security Team role has been merged into the
- Security Officer's responsibilities.</p>
- </li>
-
- <li>
- <p>The other large question concerning Core is how to
- provide a modern toolchain for all supported achitectures.
- Tier 1 architectures are required to ship with a toolchain
- unencumbered by onerous license terms. This is currently
- provided for i386 and amd64 by the LLVM suite, including
- the Clang compiler, LLD and LLDB. However LLVM support
- for other (Tier 2 or below) architectures is not yet of
- sufficient quality to be viable, and the older but
- pre-existing GPLv2 toolchain cannot support some of the
- interesting new architectures such as arm64 and RISC-V.
- Pragmatically, in order for the project to support
- these architectures,
- until LLVM support arrives we must turn to the GNU
- project's GPLv3 licenced toolchain.</p>
-
- <p>The argument here is whether to import GPLv3 licensed
- code into the FreeBSD src repository with all of the
- obligations on patent terms and source code redistribution
- that would entail, not only for the FreeBSD project itself
- but for numerous downstream consumers of FreeBSD code. Not
- having a toolchain readily available is a big impediment
- to working on a new architecture.</p>
-
- <p>One potential solution is to create a range of
- "GPLv3 toolchain" base-system packages out of a
- completely separate source code repository, for instance
- within the FreeBSD area on Github. These would be
- distributed equivalently to the other base system binary
- packages when that mechanism is introduced.</p>
-
- <p>Core recognises that this is a decision with wide-ranging
- consequences and will be producing a position paper for
- circulation amongst all interested parties in order to
- judge community opinion on the matter. Core welcomes
- feedback from all interested parties on the subject.</p>
- </li>
- </ol>
-
- <p>Beyond these two big questions, Core has handled a number of
- other items:</p>
-
- <ul>
- <li>Core approved the formation of a wiki-admin team to take
- over managing the Wiki, to curate the Wiki content and work
- on navigation and organization of existing technical content
- and to evaluate new Wiki software with the aim of opening up
- the Wiki to contributions from the public.</li>
-
- <li>An external review board has been assembled to look at
- the Code of Conduct, including a mixture of project members
- and experts from external groups. The review process is
- getting under way and Core is awaiting their report.</li>
-
- <li>The standard documentation license was found to be
- unfit for its purpose, and the doceng group had temporarily
- reverted to the previous license while a new replacement was
- drafted. This new license is now the default for new
- documentation submissions. However, one factor emerging
- from this review was the difficulty of maintaining correct
- authorial attributions for sections of documentation, some
- of which may only be a few words long. Unlike source code,
- blocks of documentation are frequently moved around within
- individual files, or even between files. Consequently, Core
- would like to introduce a Voluntary Contribution
- Agreement along the lines of the one operated by the
- Apache Foundation. With this, copyrights are signed over to
- the FreeBSD Foundation, with individual contributions being
- recognised by recording names in a general
- "Authors" file. This will be another alternative
- alongside the existing copyright mechanisms used in the
- project. Core is interested to hear any opinions on the
- subject.</li>
-
- <li>Core approved the formation of a new
- "dev-announce" mailing list, which all FreeBSD
- committers should be members of. This will be a low-traffic
- moderated list to contain important announcements,
- heads-ups, warnings of code freezes, changes in policy and
- notifications of events that affect the project as a
- whole.</li>
-
- <li>Around eight years ago, an attempt was made to import the
- OpenBSD sensors framework. This was rejected at the time as
- potentially blocking the development of a better designed
- framework. However, no such development has occurred in the
- intervening time whilst the sensors framework has been in
- use successfully by both OpenBSD and FreeNAS. Despite some
- concerns about the efficiency of the framework and potential
- impacts on power consumption and hence battery lifetime,
- core is minded to approve the import, but wants to consult
- with interested developers first.</li>
-
- <li>Core is exploring the legal ramifications for the project
- of the "Right to Be Forgotten" established by
- the European Court of Justice.</li>
-
- <li>Core is also seeking an alternative means for holding
- their regular monthly conference calls. The current,
- paid-for, service has less than satisfactory sound quality
- and reliability, and Core would like to switch to a free
- video conferencing solution.</li>
- </ul>
-
- <p>This quarter also saw a particularly large influx of new
- commit bit requests, with on occasion, four votes running
- simultaneously. Please welcome Kurt Lidl, Svatopluk Kraus,
- Michal Meloun, Jonathan Looney (Juniper), Daisuke Aoyama, Phil
- Shafer (Juniper), Ravi Pokala (Panasas), Anish Gupta and Mark
- Bloch (Mellanox) to the ranks of src committers. In addition,
- core was delighted to restore commit privileges for Eric
- Melville after a hiatus of many years.</p>
-
- <p>No commit bits were taken in during the quarter. A
- non-committer account was approved for Kevin Bowling of
- LimeLight Networks. Kevin will be doing systems
- administration work with clusteradm, with particular interest
- in the parts of the cluster that are now hosted in LLNW's
- facilities. Deb Goodkin of the FreeBSD Foundation was added to
- the developers mailing list: she was one of the few members of
- the Foundation Board not already on the list, and having
- awareness of what is going on in the developer community will
- help her to support the project more effectively.</p>
- <hr /><h2><a name="The-FreeBSD-Issue-Triage-Team" href="#The-FreeBSD-Issue-Triage-Team" id="The-FreeBSD-Issue-Triage-Team">The FreeBSD Issue Triage Team</a></h2><p>
- Contact: Bugmeister &lt;<a href="mailto:bugmeister@FreeBSD.org">bugmeister@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Kubilay
- Kocak
- &lt;<a href="mailto:koobs@FreeBSD.org">koobs@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Vladimir
- Krstulja
- &lt;<a href="mailto:vlad-fbsd@acheronmedia.com">vlad-fbsd@acheronmedia.com</a>&gt;
- <br />
- Contact:
- Rodrigo N.
- Hernandez
- &lt;<a href="mailto:rodrigo.FreeBSD@minasambiente.com.br">rodrigo.FreeBSD@minasambiente.com.br</a>&gt;
- </p>
- <p>By the end of the Q4 2015 period, Kubilay Kocak (koobs@)
- started an initiative to form an experimental Bugzilla Triage
- Team. The main goals of the team are to increase community
- involvement (addition/training of new triagers) and enhance
- current procedures and tools, among others. This experiment
- was started with the participation of Vladimir (blackflow on
- irc/freenode) and Rodrigo (DanDare on irc/freenode), who
- approached koobs@ with a desire to contribute and get more
- involved with the FreeBSD Project. This experimental pilot
- project has the task of setting up procedures for enhanced
- Issue (Problem Report) management that include better
- classification and prioritization, eventually leading to
- faster resolution of issues.</p>
-
- <p>We are now happy to report on the progress of this
- experimental team:</p>
-
- <ul>
- <li>The #FreeBSD-bugs IRC channel has been set up on Freenode
- and we are successfully using it to exchange information
- about triage processes, ask for help, propose changes and
- discuss related topics.</li>
-
- <li>We have identified the primary role of an Issue Triage
- Team to be that of classification of problem reports of all
- kinds (currently limited mostly to ports and obvious src
- issues) and facilitation of issue assignment, which is
- making sure that the reported issues are explained well,
- contain all the appropriate information (or as much of it as
- possible), and are brought to attention of the people who
- can act upon them.</li>
-
- <li>Vladimir and Rodrigo are successfully training in bug
- triage as well as porting processes (Vladimir is also taking
- maintainership of some ports).</li>
-
- <li>This experiment is benefiting from the introduction of
- newcomers to issue tracking. It naturally resulted in a
- entire review of the tracking process from its very
- elementary aspects. This "fresh eyes"
- participation spotted minor details during the process,
- giving the opportunity to scrutinize actual procedures on a
- number of smaller points, followed by proposals on how to
- improve the overall Issue Tracking and Management. The new
- ideas include both organizational and technical ideas and
- solutions, such as new or modified keywords or flags for
- better classification, the triage workflow, and Bugzilla
- technical improvements, among others.</li>
-
- <li>An important goal is producing documentation about best
- practices for using Bugzilla and issue management workflow.
- This documentation should be aimed not only at people
- directly engaged in issue triage tasks, but also at general
- users. Another relevant point is that feedback from the triage
- team can be used to improve Bugzilla in terms of adjusting
- existing features to best fit FreeBSD's needs, and the development
- of new features (please see Mahdi "Magic"
- Mokhtari's report on "Bugzilla
- improvements").</li>
-
- <li>We are still collating ideas in preparation of setting up
- a Wiki namespace for the overall topic of issue management,
- containing information for all the parties involved in issue
- tracking: from users (reporters) to maintainers and
- committers. The unorganized brainstorming document is
- linked in this report.</li> </ul>
-
- <p>Since the Issue Triage Team is very young, we expect more
- information be available and more actions to be reported in the
- next status report.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Set up the Wiki namespace and organize the brainstorming
- document into a meaningful set of documents.</p>
- </li><li>
- <p>We are actively recruiting to grow our FreeBSD Triage Team.
- If you are interested in participating and contributing to
- one of the most important community-facing areas of the FreeBSD
- project, join #freebsd-bugs on the freenode IRC and let us
- know!</p>
-
- <p>Experience with issue tracking is desirable, but not
- required. No prior internal project knowledge or technical
- skills are required, just bring your communication skills
- and awesome attitude. Training is provided.</p>
- </li></ol><hr /><br /><h1><a name="Projects" href="#Projects" id="Projects">Projects</a></h1><br /><h2><a name="CAM-I/O-Scheduler" href="#CAM-I/O-Scheduler" id="CAM-I/O-Scheduler">CAM I/O Scheduler</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://people.FreeBSD.org/~imp/bsdcan2015/iosched-v3.pdf" title="https://people.FreeBSD.org/~imp/bsdcan2015/iosched-v3.pdf">BSDCan Paper</a></td><td>
- URL: <a href="https://people.FreeBSD.org/~imp/bsdcan2015/iosched-v3.pdf" title="BSDCan Paper">https://people.FreeBSD.org/~imp/bsdcan2015/iosched-v3.pdf</a></td></tr><tr><td><a href="https://reviews.FreeBSD.org/D4609" title="https://reviews.FreeBSD.org/D4609">Phabricator Review</a></td><td>
- URL: <a href="https://reviews.FreeBSD.org/D4609" title="Phabricator Review">https://reviews.FreeBSD.org/D4609</a></td></tr></table><p>
- Contact:
- Warner
- Losh
- &lt;<a href="mailto:imp@FreeBSD.org">imp@FreeBSD.org</a>&gt;
- </p>
- <p>Reviews have begun on the CAM I/O scheduler that I wrote
- for Netflix. It is anticipated that this process will be done
- in time for the FreeBSD 11 branch.</p>
-
- <p>Details about this work can be found in the linked BSDcan
- paper from last year.</p>
-
- <p>Briefly, the scheduler allows one to differentiate I/O types
- and limit I/O based on the type and characteristics of the
- I/Os (including the latency of recent requests relative to
- historical averages). This is most useful when tuning system
- loads to SSD performance. Both a simple default scheduler,
- the same that we use today in FreeBSD, as well as a scheduler
- that can be well-tuned for system loads related to video
- streaming will be included.</p>
- <p>This project was sponsored by Netflix, Inc.</p><hr /><h2><a name="Encrypted-Kernel-Crash-Dumps" href="#Encrypted-Kernel-Crash-Dumps" id="Encrypted-Kernel-Crash-Dumps">Encrypted Kernel Crash Dumps</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://lists.FreeBSD.org/pipermail/freebsd-security/2015-December/008780.html" title="https://lists.FreeBSD.org/pipermail/freebsd-security/2015-December/008780.html">Technical Details</a></td><td>
- URL: <a href="https://lists.FreeBSD.org/pipermail/freebsd-security/2015-December/008780.html" title="Technical Details">https://lists.FreeBSD.org/pipermail/freebsd-security/2015-December/008780.html</a></td></tr><tr><td><a href="https://reviews.FreeBSD.org/D4712" title="https://reviews.FreeBSD.org/D4712">Patch Review</a></td><td>
- URL: <a href="https://reviews.FreeBSD.org/D4712" title="Patch Review">https://reviews.FreeBSD.org/D4712</a></td></tr></table><p>
- Contact:
- Konrad
- Witaszczyk
- &lt;<a href="mailto:def@FreeBSD.org">def@FreeBSD.org</a>&gt;
- </p>
- <p>Kernel crash dumps contain information about currently
- running processes. This can include sensitive data, for
- example passwords kept in memory by a browser when a kernel
- panic occurred. An entity that can read data from a dump
- device or a crash directory can also extract this information
- from a core dump. To prevent this situation, the core dump
- should be encrypted before it is stored on the dump
- device.</p>
-
- <p>This project allows a kernel to encrypt a core dump during
- a panic. A user can configure the kernel for encrypted dumps
- and save the core dump after reboot using the existing tools,
- <tt>dumpon(8)</tt> and <tt>savecore(8)</tt>. A new tool
- <tt>decryptcore(8)</tt> was added to decrypt the core
- files.</p>
-
- <p>A patch has been uploaded to Phabricator for review. The
- patch is currently being updated to address the review
- comments, and should be committed as soon as it is accepted.
- For more technical details, please visit the FreeBSD-security
- mailing list archive or see the Phabricator review.</p>
- <hr /><h2><a name="Jenkins-Continuous-Integration-for-FreeBSD" href="#Jenkins-Continuous-Integration-for-FreeBSD" id="Jenkins-Continuous-Integration-for-FreeBSD">Jenkins Continuous Integration for FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://jenkins.FreeBSD.org" title="https://jenkins.FreeBSD.org">The Jenkins CI Server in the FreeBSD Cluster</a></td><td>
- URL: <a href="https://jenkins.FreeBSD.org" title="The Jenkins CI Server in the FreeBSD Cluster">https://jenkins.FreeBSD.org</a></td></tr><tr><td><a href="https://github.com/Ultima1252/portest" title="https://github.com/Ultima1252/portest">Portest Script</a></td><td>
- URL: <a href="https://github.com/Ultima1252/portest" title="Portest Script">https://github.com/Ultima1252/portest</a></td></tr><tr><td><a href="https://github.com/jenkinsci/workflow-plugin" title="https://github.com/jenkinsci/workflow-plugin">Jenkins Workflow Plugin</a></td><td>
- URL: <a href="https://github.com/jenkinsci/workflow-plugin" title="Jenkins Workflow Plugin">https://github.com/jenkinsci/workflow-plugin</a></td></tr><tr><td><a href="https://cloudbees.com" title="https://cloudbees.com">Cloudbees</a></td><td>
- URL: <a href="https://cloudbees.com" title="Cloudbees">https://cloudbees.com</a></td></tr><tr><td><a href="https://github.com/uber/phabricator-jenkins-plugin" title="https://github.com/uber/phabricator-jenkins-plugin">Jenkins Phabricator Plugin</a></td><td>
- URL: <a href="https://github.com/uber/phabricator-jenkins-plugin" title="Jenkins Phabricator Plugin">https://github.com/uber/phabricator-jenkins-plugin</a></td></tr><tr><td><a href="https://github.com/uber/phabricator-jenkins-plugin/pull/110" title="https://github.com/uber/phabricator-jenkins-plugin/pull/110">Phabricator Plugin Fixes</a></td><td>
- URL: <a href="https://github.com/uber/phabricator-jenkins-plugin/pull/110" title="Phabricator Plugin Fixes">https://github.com/uber/phabricator-jenkins-plugin/pull/110</a></td></tr><tr><td><a href="https://github.com/jenkinsci/durable-task-plugin/pull/14" title="https://github.com/jenkinsci/durable-task-plugin/pull/14">Durable Task Plugin Fixes</a></td><td>
- URL: <a href="https://github.com/jenkinsci/durable-task-plugin/pull/14" title="Durable Task Plugin Fixes">https://github.com/jenkinsci/durable-task-plugin/pull/14</a></td></tr><tr><td><a href="https://github.com/jenkinsci/clang-scanbuild-plugin/commits/master" title="https://github.com/jenkinsci/clang-scanbuild-plugin/commits/master">Clang Scanbuild Plugin Fixes</a></td><td>
- URL: <a href="https://github.com/jenkinsci/clang-scanbuild-plugin/commits/master" title="Clang Scanbuild Plugin Fixes">https://github.com/jenkinsci/clang-scanbuild-plugin/commits/master</a></td></tr><tr><td><a href="https://github.com/jenkinsci/multiple-scms-plugin/commits/master" title="https://github.com/jenkinsci/multiple-scms-plugin/commits/master">Multiple SCMs Plugin Fixes</a></td><td>
- URL: <a href="https://github.com/jenkinsci/multiple-scms-plugin/commits/master" title="Multiple SCMs Plugin Fixes">https://github.com/jenkinsci/multiple-scms-plugin/commits/master</a></td></tr><tr><td><a href="https://github.com/jenkinsci/scm-sync-configuration-plugin/commits/master" title="https://github.com/jenkinsci/scm-sync-configuration-plugin/commits/master">SCM Sync Configuration Plugin Fixes</a></td><td>
- URL: <a href="https://github.com/jenkinsci/scm-sync-configuration-plugin/commits/master" title="SCM Sync Configuration Plugin Fixes">https://github.com/jenkinsci/scm-sync-configuration-plugin/commits/master</a></td></tr><tr><td><a href="https://lists.FreeBSD.org/pipermail/freebsd-testing/2016-January/001285.html" title="https://lists.FreeBSD.org/pipermail/freebsd-testing/2016-January/001285.html">Porting Jobs to the Workflow Plugin</a></td><td>
- URL: <a href="https://lists.FreeBSD.org/pipermail/freebsd-testing/2016-January/001285.html" title="Porting Jobs to the Workflow Plugin">https://lists.FreeBSD.org/pipermail/freebsd-testing/2016-January/001285.html</a></td></tr><tr><td><a href="https://github.com/kohsuke/akuma/pull/9" title="https://github.com/kohsuke/akuma/pull/9">Akuma Fixes for FreeBSD</a></td><td>
- URL: <a href="https://github.com/kohsuke/akuma/pull/9" title="Akuma Fixes for FreeBSD">https://github.com/kohsuke/akuma/pull/9</a></td></tr><tr><td><a href="https://github.com/jmmv/kyua/pull/148" title="https://github.com/jmmv/kyua/pull/148">Kyua Fix for Invalid Characters</a></td><td>
- URL: <a href="https://github.com/jmmv/kyua/pull/148" title="Kyua Fix for Invalid Characters">https://github.com/jmmv/kyua/pull/148</a></td></tr></table><p>
- Contact:
- Craig
- Rodrigues
- &lt;<a href="mailto:rodrigc@FreeBSD.org">rodrigc@FreeBSD.org</a>&gt;
- <br />
- Contact: Jenkins Administrators &lt;<a href="mailto:jenkins-admin@FreeBSD.org">jenkins-admin@FreeBSD.org</a>&gt;
- <br />
- Contact: FreeBSD Testing &lt;<a href="mailto:FreeBSD-testing@freebsd.org">FreeBSD-testing@freebsd.org</a>&gt;
- </p>
- <p>The Jenkins Continuous Integration and Testing project
- has been helping to improve the quality of FreeBSD. Since the
- last status report, we have quickly found commits that caused
- build breakage or test failures. FreeBSD developers saw these
- problems and quickly fixed them. Some of the highlights
- include:</p>
-
- <ul>
- <li>Ricky Gallagher wrote a script named <tt>portest</tt>,
- which can take a patch to the FreeBSD ports tree as input, and
- can generate a sequence of commands to check out the ports
- tree from Subversion, apply the patch, and then invoke
- <tt>poudriere</tt> to build the affected part of the ports
- tree. Ricky consulted with Torsten Zühlsdorff
- during its development.
- This script will be used later to test changes to the ports
- tree.</li>
-
- <li>
- <p>Craig Rodrigues converted some Jenkins builds to use the
- Workflow plugin. Workflow is a plugin written by Jesse
- Glick and other developers at Cloudbees, the main company
- providing commercial support for Jenkins. With this
- plugin, a Jenkins job can be written in a Domain Specific
- Language (DSL) which is written in the Groovy scripting
- language. Workflow scripts are meant to provide
- sophisticated access to Jenkins functionality, in a simple
- scripting language. As Jenkins jobs get more complicated
- and have more interdependencies, using a DSL is easier for
- maintainability instead of creating Jenkins jobs via
- menus.</p>
-
- <p>Craig Rodrigues worked with Jesse Glick to identify and fix a
- problem with the Durable Task plugin used by the workflow
- plugin. This problem seemed to show up mostly on
- non-Linux platforms such as OS X and FreeBSD.</p>
- </li>
-
- <li>
- <p>Eitan Adler worked with Craig Rodrigues to test a Jenkins
- plugin written by Aiden Scandella at Uber which integrates
- Phabricator and Jenkins. With this plugin, if someone
- submits a code review with Phabricator's Differential
- tool, a Jenkins build with this code change will be
- triggered. The Phabricator code review would then be
- updated with the result of the build.</p>
-
- <p>Eitan Adler and Craig Rodrigues had some initial success
- testing this plugin using the FreeBSD docs repository, but
- this plugin still has a lot of hardcoded dependencies
- specific to Uber's environment which make it difficult to
- use out-of-the-box for FreeBSD. Alexander Yerenkow submitted
- some patches upstream to fix some of these problems, but
- this plugin still needs more work. Craig Rodrigues thinks
- that it might be better to write a workflow script to call
- Phabricator commands directly.</p>
- </li>
-
- <li>
- <p>Craig Rodrigues pushed fixes upstream to several
- plugins including:</p>
-
- <ul>
- <li>SCM Sync configuration plugin</li>
-
- <li>NodeLabel parameter plugin</li>
-
- <li>Subversion plugin</li>
-
- <li>Multiple SCMs plugin</li>
-
- <li>Clang Scanbuild plugin</li>
- </ul>
-
- <p>Craig Rodrigues was granted commit access to the SCM
- Sync configuration plugin, Multiple SCMs plugin, and Clang
- Scanbuild plugin.</p>
- </li>
-
- <li>Li-Wen Hsu set up multiple builds using jails on machines
- located at NYI and administered by the FreeBSD Cluster
- Administrators. One of these builds targets 64-bit
- ARM.</li>
-
- <li>Michael Zhilin fixed the Akuma library for FreeBSD. The
- Akuma library is used by Jenkins to determine what
- command-line arguments were passed to a running process. To
- fix it, Michael invoked an FreeBSD-specific <tt>sysctl()</tt>
- with KERN_PROC_ARGS to determine the arguments for a running
- pid. This fix allows a running Jenkins instance to restart
- itself after new plugins are installed.</li>
-
- <li>Julio Merino accepted a fix for Kyua from Craig Rodrigues to fix
- writing out XML characters to test report files.</li>
- </ul>
- <h3>Open tasks:</h3><ol><li>
- <p>Work more on using the workflow plugin for various
- builds.</p>
- </li><li>
- <p>Set up a build to test <tt>bmake</tt>'s meta-mode.</p>
- </li><li>
- <p>Finish off integration with Phabricator.</p>
- </li><li>
- <p>People interested in helping out should join the
- freebsd-testing@FreeBSD.org list.</p>
- </li></ol><hr /><h2><a name="Mellanox-iSCSI-Extensions-for-RDMA-(iSER)-Support" href="#Mellanox-iSCSI-Extensions-for-RDMA-(iSER)-Support" id="Mellanox-iSCSI-Extensions-for-RDMA-(iSER)-Support">Mellanox iSCSI Extensions for RDMA (iSER) Support</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/sagigrimberg/iser-FreeBSD" title="https://github.com/sagigrimberg/iser-FreeBSD">GitHub repository</a></td><td>
- URL: <a href="https://github.com/sagigrimberg/iser-FreeBSD" title="GitHub repository">https://github.com/sagigrimberg/iser-FreeBSD</a></td></tr></table><p>
- Contact:
- Max
- Gurtovoy
- &lt;<a href="mailto:maxg@mellanox.com">maxg@mellanox.com</a>&gt;
- <br />
- Contact:
- Sagi
- Grimberg
- &lt;<a href="mailto:sagig@mellanox.com">sagig@mellanox.com</a>&gt;
- </p>
- <p>Building on the new in-kernel iSCSI initiator stack
- released in FreeBSD 10.0 and the recently added iSCSI offload
- interface, Mellanox Technologies has developed iSCSI
- extensions for RDMA (iSER) initiator support to enable
- efficient data movement using the hardware offload
- capabilities of Mellanox's 10, 40, 56, and 100 Gigabit
- Infiniband (IB)/Ethernet adapters.</p>
-
- <p>Remote Direct Memory Access (RDMA) has been shown to have
- great value for storage applications. RDMA infrastructure
- provides benefits such as zero-copy, CPU offload, reliable
- transport, fabric consolidation, and many more. The iSER
- protocol eliminates some of the bottlenecks in the traditional
- iSCSI/TCP stack, provides low latency and high throughput, and
- is well suited for latency aware workloads.</p>
-
- <p>This work includes a new ICL module that implements the iSER
- initiator. The iSCSI stack is slightly modified to support
- some extra features such as asynchronous IO completions,
- unmapped data buffers, and data-transfer offloads. The user
- will be able to choose iSER as the iSCSI transport with
- iscsictl.</p>
-
- <p>The project is in the process of being merged to FreeBSD
- 11-CURRENT and is expected to ship with FreeBSD 11.0.</p>
- <p>This project was sponsored by Mellanox Technologies.</p><hr /><h2><a name="MIPS:-Ralink/Mediatek-Support" href="#MIPS:-Ralink/Mediatek-Support" id="MIPS:-Ralink/Mediatek-Support">MIPS: Ralink/Mediatek Support</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/sgalabov/FreeBSD/tree/local/sgalabov_mtk" title="https://github.com/sgalabov/FreeBSD/tree/local/sgalabov_mtk">Github Branch With Work in Progress</a></td><td>
- URL: <a href="https://github.com/sgalabov/FreeBSD/tree/local/sgalabov_mtk" title="Github Branch With Work in Progress">https://github.com/sgalabov/FreeBSD/tree/local/sgalabov_mtk</a></td></tr></table><p>
- Contact:
- Stanislav
- Galabov
- &lt;<a href="mailto:sgalabov@gmail.com">sgalabov@gmail.com</a>&gt;
- </p>
- <p>This project is aimed at adding FreeBSD support for
- Ralink/Mediatek's family of WiFi router system-on-chip (SoC)
- devices based on MIPS processors. These SoCs are commonly
- found in embedded network devices such as WiFi routers.
- Having support for these SoCs would allow FreeBSD to run on a
- number of additional low-cost devices, which could help spread
- FreeBSD's popularity in the embedded systems world.</p>
-
- <p>The project currently aims to support the following
- Ralink/Mediatek chipsets: RT3050, RT3052, RT3350, RT3352,
- RT3662, RT3883, RT5350, RT6855, RT6856, MT7620, MT7621, MT7628
- and MT7688. The following functionality (where applicable) is
- currently planned to be supported: Interrupt controller, UART,
- GPIO, USB, PCI/PCIe, Ethernet, and SPI.</p>
- <p>This project was sponsored by Smartcom - Bulgaria AD.</p><h3>Open tasks:</h3><ol><li>
- <p>Help with adding WiFi driver support (possibly to
- <tt>ral(4)</tt>) for the above SoCs would be greatly
- appreciated.</p>
- </li><li>
- <p>Help with refactoring <tt>if_rt(4)</tt> to be usable on
- all of the above SoCs would be appreciated.</p>
- </li><li>
- <p>Help wth testing target boards (e.g., WiFi routers)
- would be appreciated.</p>
- </li></ol><hr /><h2><a name="Multipath-TCP-for-FreeBSD" href="#Multipath-TCP-for-FreeBSD" id="Multipath-TCP-for-FreeBSD">Multipath TCP for FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://bitbucket.org/nw-swin/caia-mptcp-freebsd/" title="https://bitbucket.org/nw-swin/caia-mptcp-freebsd/">MPTCP for FreeBSD Repository</a></td><td>
- URL: <a href="https://bitbucket.org/nw-swin/caia-mptcp-freebsd/" title="MPTCP for FreeBSD Repository">https://bitbucket.org/nw-swin/caia-mptcp-freebsd/</a></td></tr><tr><td><a href="http://caia.swin.edu.au/urp/newtcp/mptcp/" title="http://caia.swin.edu.au/urp/newtcp/mptcp/">MPTCP for FreeBSD Project Website</a></td><td>
- URL: <a href="http://caia.swin.edu.au/urp/newtcp/mptcp/" title="MPTCP for FreeBSD Project Website">http://caia.swin.edu.au/urp/newtcp/mptcp/</a></td></tr></table><p>
- Contact:
- Nigel
- Williams
- &lt;<a href="mailto:njwilliams@swin.edu.au">njwilliams@swin.edu.au</a>&gt;
- </p>
- <p>Multipath TCP (MPTCP) is an extension to TCP that allows for
- the use of multiple network interfaces on a standard TCP
- session. The addition of new addresses and scheduling of data
- across these occurs transparently from the perspective of the
- TCP application.</p>
-
- <p>The goal of this project is to deliver an MPTCP kernel patch
- that interoperates with the reference MPTCP implementation,
- along with additional enhancements to aid network
- research.</p>
-
- <p>A v0.51 release has been tagged in our repository, with
- some minor improvements over v0.5.</p>
-
- <p>We have now removed much of the MPTCP code that was inside
- the functions <tt>tcp_do_segment</tt>, <tt>tcp_output</tt>,
- and other code used for standard TCP connections. The goal of
- this is to restrict the added MPTCP code to just MPTCP
- connections, leaving regular TCP connections using the
- existing code.</p>
-
- <p>We are currently in the process of implementing a subflow
- socket buffer upcall and event processing. These will handle
- changes in subflow socket state, MP-signalling, and incoming
- data segments.</p>
-
- <p>This also requires some re-working of the MP option
- processing, particularly how incoming DSN maps are parsed and
- stored for use during MP-layer reassembly.</p>
-
- <p>We are also looking at how our changes might take advantage
- of the new TCP stack modularisation enhancements to create
- subflow-specific TCP functions.</p>
- <p>This project was sponsored by The Cisco University Research Program Fund at Community Foundation Silicon Valley, and The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
- <p>Complete the implementations of subflow event processing
- and new option parsing.</p>
- </li><li>
- <p>Update documentation and task lists.</p>
- </li></ol><hr /><h2><a name="OpenBSM" href="#OpenBSM" id="OpenBSM">OpenBSM</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.openbsm.org" title="http://www.openbsm.org">OpenBSM: Open Source Basic Security Module (BSM) Audit Implementation</a></td><td>
- URL: <a href="http://www.openbsm.org" title="OpenBSM: Open Source Basic Security Module (BSM) Audit Implementation">http://www.openbsm.org</a></td></tr><tr><td><a href="https://github.com/openbsm/openbsm" title="https://github.com/openbsm/openbsm">OpenBSM on GitHub</a></td><td>
- URL: <a href="https://github.com/openbsm/openbsm" title="OpenBSM on GitHub">https://github.com/openbsm/openbsm</a></td></tr><tr><td><a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/audit.html" title="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/audit.html">FreeBSD Audit Handbook Chapter</a></td><td>
- URL: <a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/audit.html" title="FreeBSD Audit Handbook Chapter">https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/audit.html</a></td></tr></table><p>
- Contact:
- Christian
- Brueffer
- &lt;<a href="mailto:brueffer@FreeBSD.org">brueffer@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Robert
- Watson
- &lt;<a href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;
- <br />
- Contact: TrustedBSD audit mailing list &lt;<a href="mailto:trustedbsd-audit@TrustedBSD.org">trustedbsd-audit@TrustedBSD.org</a>&gt;
- </p>
- <p>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.</p>
-
- <p>Progress has been slow but steady this quarter, culminating
- in OpenBSM 1.2 alpha 4, the first release in three years. It
- features various bug fixes and documentation improvements; the
- complete list of changes is documented in the
- <a href="https://github.com/openbsm/openbsm/blob/master/NEWS" shape="rect">NEWS</a>
- file on GitHub. The release was imported into FreeBSD head and
- merged to FreeBSD 10-STABLE. As such, it will be part of FreeBSD
- 10.3-RELEASE.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Test the new release on different versions of FreeBSD, Mac OS
- X, and Linux. In particular, testing on Mac OS X 10.9
- (Mavericks) and newer would be greatly appreciated.</p>
- </li><li>
- <p>Fix problems that have been reported via GitHub and the
- FreeBSD bug tracker.</p>
- </li><li>
- <p>Implement features mentioned in the
- <a href="https://github.com/openbsm/openbsm/blob/master/TODO" shape="rect">TODO</a>
- list on GitHub.</p>
- </li></ol><hr /><h2><a name="Raspberry-Pi:-VideoCore-Userland-Application-Packaging" href="#Raspberry-Pi:-VideoCore-Userland-Application-Packaging" id="Raspberry-Pi:-VideoCore-Userland-Application-Packaging">Raspberry Pi: VideoCore Userland Application
- Packaging</a></h2><p>
- Contact:
- Mikaël
- Urankar
- &lt;<a href="mailto:mikael.urankar@gmail.com">mikael.urankar@gmail.com</a>&gt;
- <br />
- Contact:
- Oleksandr
- Tymoshenko
- &lt;<a href="mailto:gonzo@FreeBSD.org">gonzo@FreeBSD.org</a>&gt;
- </p>
- <p>The Raspberry Pi SoC consists of two parts: ARM and GPU
- (VideoCore). Many interesting features like OpenGL, video
- playback, and HDMI controls are implemented on the VideoCore
- side and can be accessed from the OS through libraries
- provided by Broadcom (userland repo). These libraries were
- ported to FreeBSD some time ago, so Mikaël created the port
- <tt>misc/raspberrypi-userland</tt> for them. He also created
- a port for <tt>omxplayer</tt> (a low-level video player that
- utilizes VideoCore APIs) and is working on a port for Kodi
- (formerly XBMC), a more user-firendly media player software
- with Raspberry Pi support.</p>
- <hr /><h2><a name="RCTL-Disk-IO-Limits" href="#RCTL-Disk-IO-Limits" id="RCTL-Disk-IO-Limits">RCTL Disk IO Limits</a></h2><p>
- Contact:
- Edward Tomasz
- Napierala
- &lt;<a href="mailto:trasz@FreeBSD.org">trasz@FreeBSD.org</a>&gt;
- </p>
- <p>An important missing piece of the RCTL resource limits
- mechanism was the ability to limit disk throughput. This
- project aims to fill that hole by making it possible to add
- RCTL rules for read bytes per second (BPS), write BPS, read
- I/O operations per second (IOPS), and write IOPS. It also
- adds a new throttling mechanism to delay process execution
- when a limit is reached.</p>
-
- <p>The project is at the late implementation stage. The major
- piece of work left apart from testing is to integrate it with
- ZFS. The project is expected to ship with FreeBSD 11.0.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><hr /><h2><a name="Root-Remount" href="#Root-Remount" id="Root-Remount">Root Remount</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=290548" title="https://svnweb.freebsd.org/base?view=revision&amp;revision=290548">Commit to Head</a></td><td>
- URL: <a href="https://svnweb.freebsd.org/base?view=revision&amp;revision=290548" title="Commit to Head">https://svnweb.freebsd.org/base?view=revision&amp;revision=290548</a></td></tr><tr><td><a href="https://svnweb.freebsd.org/base/head/sbin/reboot/reboot.8?r1=290548&amp;r2=290547&amp;pathrev=290548" title="https://svnweb.freebsd.org/base/head/sbin/reboot/reboot.8?r1=290548&amp;r2=290547&amp;pathrev=290548">reboot(8) Manual Page Changes</a></td><td>
- URL: <a href="https://svnweb.freebsd.org/base/head/sbin/reboot/reboot.8?r1=290548&amp;r2=290547&amp;pathrev=290548" title="reboot(8) Manual Page Changes">https://svnweb.freebsd.org/base/head/sbin/reboot/reboot.8?r1=290548&amp;r2=290547&amp;pathrev=290548</a></td></tr></table><p>
- Contact:
- Edward Tomasz
- Napierala
- &lt;<a href="mailto:trasz@FreeBSD.org">trasz@FreeBSD.org</a>&gt;
- </p>
- <p>One of the long-missing features of FreeBSD was the ability to
- boot up with a temporary rootfs, configure the kernel to be
- able to access the real rootfs, and then replace the temporary
- root with the real one. In Linux, this functionality is known
- as pivot_root. The reroot projects provides similar
- functionality in a different, slightly more user-friendly way:
- rerooting. Simply put, from the user point of view it looks
- like the system performs a partial shutdown, killing all
- processes and unmounting the rootfs, and then partial bringup,
- mounting the new rootfs, running init, and running the startup
- scripts as usual.</p>
-
- <p>The project is finished. All the relevant code has been
- committed to FreeBSD 11-CURRENT and is expected to ship with FreeBSD
- 11.0.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><hr /><h2><a name="Routing-Stack-Update" href="#Routing-Stack-Update" id="Routing-Stack-Update">Routing Stack Update</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://wiki.freebsd.org/ProjectsRoutingProposal" title="http://wiki.freebsd.org/ProjectsRoutingProposal">Initial Proposal</a></td><td>
- URL: <a href="http://wiki.freebsd.org/ProjectsRoutingProposal" title="Initial Proposal">http://wiki.freebsd.org/ProjectsRoutingProposal</a></td></tr></table><p>
- Contact:
- Alexander
- Chernikov
- &lt;<a href="mailto:melifaro@FreeBSD.org">melifaro@FreeBSD.org</a>&gt;
- </p>
- <p>The <tt>projects/routing</tt> Subversion branch is a FreeBSD
- routing system rework aimed at providing performance,
- scalability and the ability to add advanced features to the
- routing stack.</p>
-
- <p>The current packet output path suffers from excessive
- locking. Acquiring and releasing four distinct contested
- locks is required to convert a packet to a frame suitable to
- put on the wire. The first project goal is to reduce the
- number of locks needed to just two <tt>rmlock(9)</tt>s for the
- output path, which permits close-to-linear scaling.</p>
-
- <p>Since September, one of the locks (used to protect
- link-level entries) has been completely eliminated from the
- packet data path. A new routing API was introduced, featuring
- better scalability and hiding routing internals. Most of the
- consumers of the old routing API were converted to use the new
- API.</p>
- <hr /><h2><a name="The-Graphics-Stack-on-FreeBSD" href="#The-Graphics-Stack-on-FreeBSD" id="The-Graphics-Stack-on-FreeBSD">The Graphics Stack on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/Graphics" title="https://wiki.FreeBSD.org/Graphics">Graphics Stack Roadmap and Supported Hardware Matrix</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/Graphics" title="Graphics Stack Roadmap and Supported Hardware Matrix">https://wiki.FreeBSD.org/Graphics</a></td></tr><tr><td><a href="https://github.com/FreeBSD/freebsd-ports-graphics" title="https://github.com/FreeBSD/freebsd-ports-graphics">Ports Development Tree on GitHub</a></td><td>
- URL: <a href="https://github.com/FreeBSD/freebsd-ports-graphics" title="Ports Development Tree on GitHub">https://github.com/FreeBSD/freebsd-ports-graphics</a></td></tr></table><p>
- Contact: FreeBSD Graphics team &lt;<a href="mailto:freebsd-x11@freebsd.org">freebsd-x11@freebsd.org</a>&gt;
- </p>
- <p>Several important ports were updated: Mesa to 11.0.8, the
- X.Org server to 1.17.4, libdrm to 2.4.65, as well as many
- applications and libraries. The latest release of the X.Org
- server, 1.18, is being tested in our Ports development
- tree.</p>
-
- <p>On the kernel side, the i915 update is almost ready to
- land. There are a couple known regressions for currently
- supported GPUs that we want to fix before committing.</p>
-
- <p>We started a discussion on the FreeBSD-x11@ mailing list to
- organize future contributions to the kernel drivers. We have
- already received some valuable comments. We are confident
- that future updates will happen at a faster pace, thanks to
- several motivated people!</p>
-
- <p>FOSDEM is held in Brussels on the 30th and 31st of January.
- We will attend this conference. It will be a perfect time to
- see people again from FreeBSD and from the XDC. On Sunday, we
- will give a talk about how to contribute to the Graphics
- Stack.</p>
-
- <p>Our blog is currently down because the service was
- discontinued. We hope to get a dump of our data to put it
- back online elsewhere. Unfortunately, there is no ETA for
- this item.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>See the "Graphics" wiki page for up-to-date
- information.</p>
- </li></ol><hr /><h2><a name="The-nosh-Project" href="#The-nosh-Project" id="The-nosh-Project">The nosh Project</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html">Introduction</a></td><td>
- URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html" title="Introduction">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html">FreeBSD binary packages</a></td><td>
- URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html" title="FreeBSD binary packages">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/freebsd-binary-packages.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html">Installation How-To</a></td><td>
- URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html" title="Installation How-To">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/timorous-admin-installation-how-to.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html">Roadmap</a></td><td>
- URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html" title="Roadmap">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/roadmap.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html">Commands</a></td><td>
- URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html" title="Commands">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/commands.html</a></td></tr><tr><td><a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html" title="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html">A Slightly Outdated User Guide</a></td><td>
- URL: <a href="http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html" title="A Slightly Outdated User Guide">http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/nosh/guide/index.html</a></td></tr><tr><td><a href="https://www.mail-archive.com/supervision@list.skarnet.org/" title="https://www.mail-archive.com/supervision@list.skarnet.org/">The Supervision Mailing List</a></td><td>
- URL: <a href="https://www.mail-archive.com/supervision@list.skarnet.org/" title="The Supervision Mailing List">https://www.mail-archive.com/supervision@list.skarnet.org/</a></td></tr></table><p>
- Contact:
- Jonathan
- de Boyne Pollard
- &lt;<a href="mailto:J.deBoynePollard-newsgroups@NTLWorld.COM">J.deBoynePollard-newsgroups@NTLWorld.COM</a>&gt;
- </p>
- <p>The nosh project is a suite of system-level utilities for
- initializing, running, and shutting down BSD systems, and for
- managing daemons, terminals, and logging. It supersedes BSD
- <tt>init</tt> and the NetBSD <tt>rc.d</tt> system, drawing
- inspiration from Solaris SMF for named milestones,
- daemontools-encore for service control/status mechanisms,
- UCSPI, and IBM AIX for separated service and system
- management. It comprises a range of compatibility mechanisms,
- including shims for familiar commands from other systems, and
- an automatic import mechanism that takes existing
- configuration data from <tt>/etc/fstab</tt>,
- <tt>/etc/rc.conf{,.local}</tt>, <tt>/etc/ttys</tt>, and
- elsewhere, applying them to its native service definitions and
- creating additional native services. It is portable
- (including to Linux) and composable, it provides a migration
- path from the world of systemd Linux, and it does not require
- new kernel APIs. It provides clean service environments,
- orderings and dependencies between services, parallelized
- startup and shutdown (including <tt>fsck</tt>), strictly
- size-capped and autorotated logging, the service manager as a
- "subreaper", and uses <tt>kevent(2)</tt> for
- event-driven parallelism.</p>
-
- <p>Since the last status report, in October 2015, the project
- has seen: the complete replacement of its event-handling
- subsystem on Linux; the introduction of tools for exporting
- cyclog/multilog logs via RFC 5426 to remote log handlers (such
- as logstash); and the switching of the user-mode virtual
- terminal subsystem on BSD to using USB devices directly, a
- more powerful device interface than sysmouse et al. because it
- permits directly positioning touch devices for mice and other
- things (thus permitting "mouse integration" under
- VirtualBox for those who run PC-BSD/FreeBSD on VirtualBox virtual
- machines), but sysmouse et al. can still be used if
- desired.</p>
-
- <p>In version 1.24, released shortly before publication of this
- report, there are extensive additions for supporting a
- purely-ZFS system with an empty <tt>/etc/fstab</tt> (as the
- PC-BSD 10.2 system installer creates), and the ability to
- convert <tt>systemd</tt> unit files' process priority settings
- to BSD's rtprio/idprio.</p>
-
- <p>Version 1.24 also sees a large chunk taken out of the
- remainder of the on-going project to create enough native
- service bundles and ancillary utilities to entirely supplant
- the <tt>rc.d</tt> system. The progress of this project has
- been open from the start, and can be followed on the nosh
- roadmap web page. As of version 1.24, there are a mere 27
- items remaining out of the original target list of 157, with a
- 28th and a 29th (from PC-BSD 10.2) added. Items crossed off
- by version 1.24 include (amongst others) <tt>mfs</tt> support
- for <tt>/tmp</tt>, static ARP and networking, persistent
- entropy for the randomness subsystem,
- <tt>pefs</tt>, and <tt>hald</tt>.</p>
-
- <p>The remaining items in the task list are mostly aimed at
- making the overall system integration cleaner and friendlier
- to modern systems. We are also interested in receiving
- suggestions, bug reports, and other feedback from users. Try
- following the how-to guide and see how things go!</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Add kernel support for passing a <tt>-b</tt> option to
- PID 1, and support for a <tt>boot_bare</tt> variable in the
- loader, to allow "emergency" (where no shell
- dotfiles are loaded) and "rescue" mode bootstraps,
- akin to Linux. (History: the <tt>-b</tt> mechanism and idea
- date back to version 2.57d of Miquel van Smoorenburg's
- System 5 init clone, dated 1995-12-03, and was already known
- as "emergency boot" by 1997.)</p>
- </li><li>
- <p>Add support to FreeBSD's <tt>fsck(8)</tt> for outputting
- machine-readable progress reports to a designated file
- descriptor, so that <tt>nosh</tt> can provide progress bars
- for multiple <tt>fsck</tt>s running in parallel.
- <tt>nosh</tt> already provides this functionality on Linux,
- where <tt>fsck(8)</tt> does provide machine-readable
- output.</p>
- </li><li>
- <p>Identify when the configuration import system needs to be
- triggered, such as when <tt>bsdconfig</tt> alters
- configuration files, and create the necessary hooks to
- import external configuration changes into nosh.</p>
- </li></ol><hr /><h2><a name="UEFI-Boot-and-Framebuffer-Support" href="#UEFI-Boot-and-Framebuffer-Support" id="UEFI-Boot-and-Framebuffer-Support">UEFI Boot and Framebuffer Support</a></h2><p>
- Contact:
- Ed
- Maste
- &lt;<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>&gt;
- </p>
- <p>A number of UEFI bug fixes were committed over the last
- quarter, further improving compatibility with different UEFI
- implementations. Specifically: on some implementations, FreeBSD
- failed to boot with an "ExitBootServices() returned
- 0x8000000000000002" error. This has been fixed with a
- retry loop (as required by UEFI) in r292515 and r292338.</p>
-
- <p>UEFI improvements from other developers have recently been
- committed or are in progress. These include support for
- environment variables set on the EFI loader command line,
- improved text console mode setting, support for nvram
- variables, and root-on-ZFS support.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
- <p>Test FreeBSD-CURRENT snapshots on a variety of UEFI
- implementations.</p></li><li>
- <p>Merge UEFI changes to stable/10 for FreeBSD
- 10.3-RELEASE.</p>
- </li></ol><hr /><br /><h1><a name="Kernel" href="#Kernel" id="Kernel">Kernel</a></h1><br /><h2><a name="Chelsio-iSCSI-Offload-Driver-(Initiator-and-Target)" href="#Chelsio-iSCSI-Offload-Driver-(Initiator-and-Target)" id="Chelsio-iSCSI-Offload-Driver-(Initiator-and-Target)">Chelsio iSCSI Offload Driver (Initiator and Target)</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://svnweb.freebsd.org/changeset/base/292740" title="https://svnweb.freebsd.org/changeset/base/292740">Commit Adding Hardware Acceleration Support</a></td><td>
- URL: <a href="https://svnweb.freebsd.org/changeset/base/292740" title="Commit Adding Hardware Acceleration Support">https://svnweb.freebsd.org/changeset/base/292740</a></td></tr></table><p>
- Contact:
- Navdeep
- Parhar
- &lt;<a href="mailto:navdeep@chelsio.com">navdeep@chelsio.com</a>&gt;
- </p>
- <p>A new driver, <tt>cxgbei</tt>, enabling hardware accelerated
- iSCSI with Chelsio's T5- and T4-based offload-capable cards,
- has been committed to head. Both Initiator and Target are
- supported. The wire traffic is standard iSCSI (SCSI over TCP
- as per RFC 3720, etc.) so an Initiator/Target using this
- driver will interoperate with all other standards-compliant
- implementations.</p>
-
- <p>Hardware assistance provided by the T5 and T4 ASICs
- includes:</p>
-
- <ul>
- <li>Complete TCP processing.</li>
-
- <li>iSCSI PDU identification and extraction from the byte
- oriented TCP stream.</li>
-
- <li>Header and/or data digest generation and
- verification.</li>
-
- <li>Zero copy support for both transmit and receive.</li>
- </ul>
- <p>This project was sponsored by Chelsio Communications.</p><h3>Open tasks:</h3><ol><li>
- <p>The <tt>cxgbei(4)</tt> man page is missing but will be
- committed shortly.</p>
- </li><li>
- <p>The driver is in advanced stage QA and will see some
- bugfixes and performance enhancements in the very near
- future. MFC is possible as soon as the QA cycle
- completes.</p>
- </li></ol><hr /><h2><a name="FreeBSD-Integration-Services-(BIS)" href="#FreeBSD-Integration-Services-(BIS)" id="FreeBSD-Integration-Services-(BIS)">FreeBSD Integration Services (BIS)</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/HyperV" title="https://wiki.FreeBSD.org/HyperV">FreeBSD Virtual Machines on Microsoft Hyper-V</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/HyperV" title="FreeBSD Virtual Machines on Microsoft Hyper-V">https://wiki.FreeBSD.org/HyperV</a></td></tr><tr><td><a href="https://technet.microsoft.com/en-us/library/dn531030.aspx" title="https://technet.microsoft.com/en-us/library/dn531030.aspx">Linux and FreeBSD Virtual Machines on Hyper-V</a></td><td>
- URL: <a href="https://technet.microsoft.com/en-us/library/dn531030.aspx" title="Linux and FreeBSD Virtual Machines on Hyper-V">https://technet.microsoft.com/en-us/library/dn531030.aspx</a></td></tr></table><p>
- Contact:
- Dexuan
- Cui
- &lt;<a href="mailto:decui@microsoft.com">decui@microsoft.com</a>&gt;
- <br />
- Contact:
- Hongjiang
- Zhang
- &lt;<a href="mailto:honzhan@microsoft.com">honzhan@microsoft.com</a>&gt;
- </p>
- <p>When FreeBSD virtual machines (VMs) run on Hyper-V, using
- Hyper-V synthetic devices is recommended to get the best
- network and storage performance and make full use of all the
- benefits that Hyper-V provides. The collection of drivers
- that are required to run Hyper-V synthetic devices in FreeBSD are
- known as FreeBSD Integration Services (BIS). Some of the BIS
- drivers (like network and storage drivers) have existed in
- FreeBSD 9.x and 10.x for years, but there are still some
- performance and stability issues and bugs. Compared with
- Windows and Linux VMs, the current BIS lacks some important
- features, such as virtual Receive Side Scaling (vRSS) support
- in the Hyper-V network driver and support for UEFI VM (boot
- from UEFI), among others.</p>
-
- <p>We are now working more on the issues and performance tuning
- to make FreeBSD VMs run better on Hyper-V and the Hyper-V based
- cloud platform Azure.</p>
-
- <p>Our work during 2015Q4 is documented below:</p>
-
- <ul>
- <li>Optimizing the VMBus driver and Hyper-V network driver
- for performance:
- <ul>
- <li>Sent out patches to enable <tt>INTR_MPSAFE</tt> for
- the interrupt handling thread, speed up relid-to-channel
- lookup in the thread by map table, and optimize the
- VMBus ringbuffer writable notification to the host.</li>
-
- <li>Developing a patch to enable the virtual Receive
- Side Scaling (vRSS) for Hyper-V network device driver.
- This will greatly improve the network performance for
- SMP virtual machine (VM).</li>
-
- <li>Sent out a patch to enable the Hyper-V timer, which
- will improve the accuracy of timekeeping when FreeBSD VMs
- run on Hyper-V.</li>
- </ul>
- </li>
-
- <li>Fixing bugs and cleaning up the code:
- <ul>
- <li>Fixed a bug in checksum offloading (PR 203630
- &#8212; [Hyper-V] [nat] [tcp] 10.2 NAT bug in TCP stack
- or hyperv netsvc driver) in the Hyper-V network driver,
- making FreeBSD VM based NAT gateways work more
- reliably.</li>
-
- <li>Fixed a serialization issue in the initialization of
- VMBus devices, fixing PR 205156 ([Hyper-V] NICs' (hn0,
- hn1) MAC addresses can appear in an uncertain way across
- reboot).</li>
-
- <li>Fixed a KVP (Key-Value Pair) issue (retrieving a
- key's value can hang for an uncertain period of
- time).</li>
-
- <li>Added ioctl support for SIOCGIFMEDIA for the Hyper-V
- network driver, fixing PR 187006 ([Hyper-V] dynamic
- address (DHCP) obtaining does not work on HYPER-V OS
- 2012 R2).</li>
-
- <li>Sent out patches to add an interrupt counter for
- Hyper-V VMBus interrupts (so the user can easily get
- statistical information about VMBus interrupts),
- and fix the KVP daemon's poll timeout (so the daemon
- will avoid unnecessary polling every 100
- milliseconds.</li>
-
- <li>Identified a TSC calibration issue: the i8254 PIT
- timer emulation of Hyper-V is not fully reliable, so
- the Hyper-V time counter should be used to calibrate
- the TSC. A patch was drafted. With the patch, it looks
- the warning kernel message (e.g., "calcru: runtime
- went backwards from 46204978 usec to 23362331 usec for
- pid 0 (kernel)") will go away, and the time-based
- tracing of Dtrace will be more accurate.</li>
- </ul>
- </li>
-
- <li>We plan to add support for UEFI VMs (Hyper-V Generation-2
- VMs). Currently some issues and to-do items were
- identified. For example, we cannot use the i8254 PIT to
- calibrate the TSC because the i8254 PIT does not exist in a
- UEFI VM, and we need to add support for the Hyper-V
- synthetic keyboard/mouse/framebuffer device.</li>
-
- <li>We are working on a disk detection issue: when a FreeBSD VM
- runs on a Windows Server 2016 Technical Preview host, the VM
- will detect 16 disks when only one disk is configured for
- the VM. VMs running on these hosts can fail to boot. A
- workaround patch was created and we are trying to make a
- formal fix.</li>
-
- <li>We are tidying up some internal BIS test cases and plan
- to publish them on github.</li>
- </ul>
- <p>This project was sponsored by Microsoft.</p><hr /><h2><a name="FreeBSD-Xen" href="#FreeBSD-Xen" id="FreeBSD-Xen">FreeBSD Xen</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://wiki.xen.org/wiki/FreeBSD_PVH" title="http://wiki.xen.org/wiki/FreeBSD_PVH">FreeBSD PVH DomU Wiki Page</a></td><td>
- URL: <a href="http://wiki.xen.org/wiki/FreeBSD_PVH" title="FreeBSD PVH DomU Wiki Page">http://wiki.xen.org/wiki/FreeBSD_PVH</a></td></tr><tr><td><a href="http://wiki.xen.org/wiki/FreeBSD_Dom0" title="http://wiki.xen.org/wiki/FreeBSD_Dom0">FreeBSD PVH Dom0 Wiki Page</a></td><td>
- URL: <a href="http://wiki.xen.org/wiki/FreeBSD_Dom0" title="FreeBSD PVH Dom0 Wiki Page">http://wiki.xen.org/wiki/FreeBSD_Dom0</a></td></tr><tr><td><a href="http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=shortlog;h=refs/heads/new_entry_point_v5" title="http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=shortlog;h=refs/heads/new_entry_point_v5">FreeBSD/Xen HVMlite Implementation</a></td><td>
- URL: <a href="http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=shortlog;h=refs/heads/new_entry_point_v5" title="FreeBSD/Xen HVMlite Implementation">http://xenbits.xen.org/gitweb/?p=people/royger/freebsd.git;a=shortlog;h=refs/heads/new_entry_point_v5</a></td></tr></table><p>
- Contact:
- Roger
- Pau Monné
- &lt;<a href="mailto:royger@FreeBSD.org">royger@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Wei
- Liu
- &lt;<a href="mailto:wei.liu2@citrix.com">wei.liu2@citrix.com</a>&gt;
- </p>
- <p>Xen is a hypervisor using a microkernel design, providing
- services that allow multiple computer operating systems to
- execute on the same computer hardware concurrently. Xen
- support for FreeBSD on x86 as a guest was introduced in version
- 8, and ARM support is currently being worked on. Support for
- running FreeBSD as an amd64 Xen host (Dom0) is available in
- head.</p>
-
- <p>The x86 work done during this quarter has been focused on
- rewriting the PVH implementation inside of Xen, into what is
- now being called HVMlite to differentiate it with the previous
- PVH implementation. The Xen side of patches have already been
- committed to the Xen source tree, and will be available in Xen
- 4.7, the next version. Work has also begun on implementing
- HVMlite Dom0 support, although no patches have yet been
- published.</p>
-
- <p>HVMlite support for FreeBSD has not yet been committed,
- although an initial implementation is available in a personal
- git repository. The plan is to completely replace PVH with
- HVMlite on FreeBSD as soon as HVMlite supports Dom0 mode.</p>
-
- <p>Apart from this, Wei Liu is working on improving netfront
- performance on FreeBSD. Initial patches have been posted to the
- FreeBSD review system.</p>
-
- <p>The x86 unmapped bounce buffer code has also been improved,
- and unmapped IO support has been added to the
- <tt>blkfront</tt> driver.</p>
- <p>This project was sponsored by Citrix Systems R&amp;D.</p><h3>Open tasks:</h3><ol><li>
- <p>Finish HVMlite Dom0 support inside of Xen.</p>
- </li><li>
- <p>Deprecate and remove PVH support from Xen.</p>
- </li><li>
- <p>Remove PVH support from FreeBSD and switch to HVMlite.</p>
- </li><li>
- <p>Generalize the event channel code so it can be used on
- ARM.</p>
- </li><li>
- <p>Improve the performance of the various backends
- (<tt>netback</tt>, <tt>blkback</tt>).</p>
- </li></ol><hr /><h2><a name="Improvements-to-the-QLogic-HBA-Driver" href="#Improvements-to-the-QLogic-HBA-Driver" id="Improvements-to-the-QLogic-HBA-Driver">Improvements to the QLogic HBA Driver</a></h2><p>
- Contact:
- Alexander
- Motin
- &lt;<a href="mailto:mav@FreeBSD.org">mav@FreeBSD.org</a>&gt;
- </p>
- <p>The QLogic HBA driver, <tt>isp(4)</tt>, received a
- substantial set of changes. The primary goal was to make the
- Fibre Channel target role work well with CTL, but many other
- things were also fixed/improved:</p>
-
- <ul>
- <li>Added support for modern 16Gbps 26xx FC cards.</li>
-
- <li>The firmware in <tt>ispfw(4)</tt> were updated to the
- latest versions.</li>
-
- <li>Target role support was fixed and tested for all FC cards
- from ancient 1Gbps 22xx to modern 16Gbps 26xx.</li>
-
- <li>Port database handling was unified for target and
- initiator roles, allowing an HBA port to play both roles at the
- same time.</li>
-
- <li>The maximal number of ports was increased from 256 to
- 1024.</li>
-
- <li>Multi-ID (NPIV) functionality was fixed/implemented,
- allowing 24xx and above cards to provide up to 255 virtual
- FC ports per physical port.</li>
-
- <li>Added support for 8-byte LUNs for 24xx and above
- cards.</li>
- </ul>
-
- <p>The code is committed to FreeBSD head and stable/10
- branches.</p>
- <p>This project was sponsored by iXsystems, Inc..</p><h3>Open tasks:</h3><ol><li>
- <p>NVRAM data reading is hackish and requires rework.</p>
- </li><li>
- <p>FCoE support for 26xx cards was not tested yet.</p>
- </li></ol><hr /><h2><a name="iMX.6-Video-Output-Support" href="#iMX.6-Video-Output-Support" id="iMX.6-Video-Output-Support">iMX.6 Video Output Support</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://svnweb.FreeBSD.org/changeset/base/292574" title="https://svnweb.FreeBSD.org/changeset/base/292574">Commit Adding Basic Video Support</a></td><td>
- URL: <a href="https://svnweb.FreeBSD.org/changeset/base/292574" title="Commit Adding Basic Video Support">https://svnweb.FreeBSD.org/changeset/base/292574</a></td></tr></table><p>
- Contact:
- Oleksandr
- Tymoshenko
- &lt;<a href="mailto:gonzo@FreeBSD.org">gonzo@FreeBSD.org</a>&gt;
- </p>
- <p>iMX.6 is a family of SoC used in multiple hobbyist ARM boards
- such as the Hummingboard, RIoTboard, and Cubox. Most of these
- products have HDMI output, but until recently, FreeBSD did not
- benefit from it. As of r292574, there is basic video output
- support so you can use the console on iMX6-based boards and
- probably run Xorg (not yet tested).</p>
-
- <p>Due to the lack of some kernel functionality (see open
- tasks), the only supported mode is 1024x768.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Proper pixel clock initialization (relies on a clock
- framework).</p>
- </li><li>
- <p>More flexible video output path (support multiple IPUs
- and DIs).</p>
- </li></ol><hr /><h2><a name="ioat(4)-Driver-Enhancements" href="#ioat(4)-Driver-Enhancements" id="ioat(4)-Driver-Enhancements">ioat(4) Driver Enhancements</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://en.wikipedia.org/wiki/I/O_Acceleration_Technology" title="https://en.wikipedia.org/wiki/I/O_Acceleration_Technology">Wikipedia on I/OAT</a></td><td>
- URL: <a href="https://en.wikipedia.org/wiki/I/O_Acceleration_Technology" title="Wikipedia on I/OAT">https://en.wikipedia.org/wiki/I/O_Acceleration_Technology</a></td></tr><tr><td><a href="https://www.FreeBSD.org/status/report-2015-07-2015-09.html#ioat%284%29-Driver-Import" title="https://www.FreeBSD.org/status/report-2015-07-2015-09.html#ioat%284%29-Driver-Import">Last quarter's ioat(4) report</a></td><td>
- URL: <a href="https://www.FreeBSD.org/status/report-2015-07-2015-09.html#ioat%284%29-Driver-Import" title="Last quarter's ioat(4) report">https://www.FreeBSD.org/status/report-2015-07-2015-09.html#ioat%284%29-Driver-Import</a></td></tr></table><p>
- Contact:
- Conrad
- Meyer
- &lt;<a href="mailto:cem@FreeBSD.org">cem@FreeBSD.org</a>&gt;
- </p>
- <p>I/OAT DMA engines are bulk memory operation offload engines
- built into some Intel Server/Storage platform CPUs.</p>
-
- <p>Several enhancements were made to the driver. It now avoids
- memory allocation in locked paths, which should avoid
- deadlocking in memory pressure scenarios. Support for
- Broadwell-EP devices has been added. The
- "blockfill" operation and a non-contiguous 8 KB copy
- operation have been added to the API. The driver can recover
- from various programming errors by resetting the hardware.</p>
- <p>This project was sponsored by EMC / Isilon Storage Division.</p><h3>Open tasks:</h3><ol><li>
- <p>XOR and other advanced ("RAID") operation
- support.</p>
- </li></ol><hr /><h2><a name="Kernel-Vnode-Cache-Tuning" href="#Kernel-Vnode-Cache-Tuning" id="Kernel-Vnode-Cache-Tuning">Kernel Vnode Cache Tuning</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://reviews.FreeBSD.org/rS292895" title="https://reviews.FreeBSD.org/rS292895">MFC to stable/10</a></td><td>
- URL: <a href="https://reviews.FreeBSD.org/rS292895" title="MFC to stable/10">https://reviews.FreeBSD.org/rS292895</a></td></tr></table><p>
- Contact:
- Kirk
- McKusick
- &lt;<a href="mailto:mckusick@mckusick.com">mckusick@mckusick.com</a>&gt;
- <br />
- Contact:
- Bruce
- Evans
- &lt;<a href="mailto:bde@FreeBSD.org">bde@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Konstantin
- Belousov
- &lt;<a href="mailto:kib@FreeBSD.org">kib@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Peter
- Holm
- &lt;<a href="mailto:pho@FreeBSD.org">pho@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Mateusz
- Guzik
- &lt;<a href="mailto:mjg@FreeBSD.org">mjg@FreeBSD.org</a>&gt;
- </p>
- <p>This completed project includes changes to better manage
- the vnode freelist and to streamline the allocation and
- freeing of vnodes.</p>
-
- <p>Vnode cache recycling was reworked to meet free and unused
- vnode targets. Free vnodes are rarely completely free;
- rather, they are just ones that are cheap to recycle. Usually
- they are for files which have been stat'd but not read; these
- usually have inode and namecache data attached to them. The
- free vnode target is the preferred minimum size of a sub-cache
- consisting mostly of such files. The system balances the size
- of this sub-cache with its complement to try to prevent either
- from thrashing while the other is relatively inactive. The
- targets express a preference for the best balance.</p>
-
- <p>"Above" this target there are 2 further targets
- (watermarks) related to the recyling of free vnodes. In the
- best-operating case, the cache is exactly full, the free list
- has size between vlowat and vhiwat above the free target, and
- recycling from the free list and normal use maintains this
- state. Sometimes the free list is below vlowat or even empty,
- but this state is even better for immediate use, provided the
- cache is not full. Otherwise, <tt>vnlru_proc()</tt> runs to
- reclaim enough vnodes (usually non-free ones) to reach one of
- these states. The watermarks are currently hard-coded as 4%
- and 9% of the available space. These, and the default of 25%
- for wantfreevnodes, are too large if the memory size is large.
- For example, 9% of 75% of MAXVNODES is more than 566000 vnodes
- to reclaim whenever <tt>vnlru_proc()</tt> becomes active.</p>
-
- <p>The <tt>vfs.vlru_alloc_cache_src</tt> sysctl is removed. The new
- code frees namecache sources as the last chance to satisfy the
- highest watermark, instead of selecting source vnodes
- randomly. This provides good enough behavior to keep
- <tt>vn_fullpath()</tt> working in most situations. Filesystem
- layouts with deep trees, where the removed knob was required,
- are thus handled automatically.</p>
-
- <p>As the kernel allocates and frees vnodes, it fully
- initializes them on every allocation and fully releases them
- on every free. These are not trivial costs: it starts by
- zeroing a large structure, then initializes a mutex, a lock
- manager lock, an rw lock, four lists, and six pointers.
- Looking at <tt>vfs.vnodes_created</tt>, these operations are
- being done millions of times an hour on a busy machine.</p>
-
- <p>As a performance optimization, this code update uses the
- uma_init and uma_fini routines to do these initializations and
- cleanups only as the vnodes enter and leave the vnode zone.
- With this change, the initializations are done
- <tt>kern.maxvnodes</tt> times at system startup, and then only
- rarely again. The frees are done only if the vnode zone
- shrinks, which never happens in practice. For those curious
- about the avoided work, look at the <tt>vnode_init()</tt> and
- <tt>vnode_fini()</tt> functions in sys/kern/vfs_subr.c to see
- the code that has been removed from the main vnode
- allocation/free path.</p>
- <hr /><h2><a name="Mellanox-Drivers" href="#Mellanox-Drivers" id="Mellanox-Drivers">Mellanox Drivers</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.mellanox.com/page/ethernet_cards_overview" title="http://www.mellanox.com/page/ethernet_cards_overview">Hardware Information</a></td><td>
- URL: <a href="http://www.mellanox.com/page/ethernet_cards_overview" title="Hardware Information">http://www.mellanox.com/page/ethernet_cards_overview</a></td></tr><tr><td><a href="https://svnweb.FreeBSD.org/changeset/base/290650" title="https://svnweb.FreeBSD.org/changeset/base/290650">Commit Adding the Driver</a></td><td>
- URL: <a href="https://svnweb.FreeBSD.org/changeset/base/290650" title="Commit Adding the Driver">https://svnweb.FreeBSD.org/changeset/base/290650</a></td></tr></table><p>
- Contact:
- Hans Petter
- Selasky
- &lt;<a href="mailto:hselasky@FreeBSD.org">hselasky@FreeBSD.org</a>&gt;
- </p>
- <p>The Mellanox FreeBSD team is proud to announce support for the
- ConnectX-4 series of network cards in FreeBSD 11-current and FreeBSD
- 10-stable. These devices deliver top performance, with up to
- 100GBit/s of raw transfer capacity, and support both Ethernet
- and Infiniband. Currently, the Ethernet driver is ready for
- use and the Infiniband support for ConnectX-4 is making good
- progress. We hope that it will be complete before FreeBSD 11.0
- is released. For more technical information, refer to the
- <tt>mlx5en(4)</tt> manual page in 11-current. The new driver
- for ConnectX-4 cards is called <tt>mlx5</tt> and is put under
- <tt>/sys/dev</tt> and not under <tt>/sys/ofed</tt> as was done
- for the previous <tt>mlx4</tt> driver. The <tt>mlx5en(4)</tt>
- kernel module is compiled by default in GENERIC kernels.</p>
- <p>This project was sponsored by Mellanox Technologies.</p><hr /><h2><a name="Minimal-Kernel-with-PNP-Based-Autoloading" href="#Minimal-Kernel-with-PNP-Based-Autoloading" id="Minimal-Kernel-with-PNP-Based-Autoloading">Minimal Kernel with PNP-Based Autoloading</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://bsdimp.blogspot.com/2016/01/details-on-coming-automatic-module.html" title="http://bsdimp.blogspot.com/2016/01/details-on-coming-automatic-module.html">Blog Post</a></td><td>
- URL: <a href="http://bsdimp.blogspot.com/2016/01/details-on-coming-automatic-module.html" title="Blog Post">http://bsdimp.blogspot.com/2016/01/details-on-coming-automatic-module.html</a></td></tr></table><p>
- Contact:
- Warner
- Losh
- &lt;<a href="mailto:imp@FreeBSD.org">imp@FreeBSD.org</a>&gt;
- </p>
- <p>Work on automatically loading modules based on the
- plug-and-play data from devices that are scanned and found to
- not already have a driver attached is in progress. Digging
- this information out from kernel modules, as well as tagging
- relevant bits of driver tables, has been committed. PC Card,
- USB, and some PCI devices now have these markings. This data
- is stored in a file that the kernel, boot loader, and userland
- processes all can access.</p>
-
- <p>When complete, a user will be able to run a minimal kernel
- (currently checked in as the <tt>MINIMAL</tt> config).
- Devices necessary for booting will be loaded by
- <tt>loader(8)</tt>. Other devices may be loaded there, or
- early in the boot (depending on which gives better
- performance). Users will still be able to run more
- monolithic; configurations, as well as limit which
- kernel modules are available as can be done today, though
- without the convenience that automatic loading will provide.
- This work remains ongoing.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Go through all the simplebus drivers and add plug-and-play
- information there. Some additional minor simplebus
- functionality is needed. There is some work in progress for
- this.</p>
- </li><li>
- <p>Go through all the PCI drivers and add plug-and-play
- information to them. Unlike PC Card or USB, the PCI bus
- does not have a stylized table of PCI IDs, so each driver
- invents its own method, meaning that the semi-mechanical
- conversion that was done with PC Card and USB will not be
- possible. Instead, customized code for each driver will be
- needed. Since a large number of drivers have their own
- device tables, the work will be primarily writing a
- description of the current table style.</p>
- </li><li>
- <p>Run-time parsing and loading is still needed.</p>
- </li></ol><hr /><h2><a name="MMC-Stack-Under-CAM-Framework" href="#MMC-Stack-Under-CAM-Framework" id="MMC-Stack-Under-CAM-Framework">MMC Stack Under CAM Framework</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://bakulin.de/freebsd/mmccam.html" title="https://bakulin.de/freebsd/mmccam.html">Project Information</a></td><td>
- URL: <a href="https://bakulin.de/freebsd/mmccam.html" title="Project Information">https://bakulin.de/freebsd/mmccam.html</a></td></tr><tr><td><a href="https://github.com/kibab/FreeBSD/tree/mmccam" title="https://github.com/kibab/FreeBSD/tree/mmccam">Source Code</a></td><td>
- URL: <a href="https://github.com/kibab/FreeBSD/tree/mmccam" title="Source Code">https://github.com/kibab/FreeBSD/tree/mmccam</a></td></tr><tr><td><a href="https://reviews.FreeBSD.org/D4761" title="https://reviews.FreeBSD.org/D4761">Patch for Review</a></td><td>
- URL: <a href="https://reviews.FreeBSD.org/D4761" title="Patch for Review">https://reviews.FreeBSD.org/D4761</a></td></tr></table><p>
- Contact:
- Ilya
- Bakulin
- &lt;<a href="mailto:ilya@bakulin.de">ilya@bakulin.de</a>&gt;
- </p>
- <p>The goal of this project is to reimplement the existing
- MMC/SD stack using the CAM framework. This will permit
- utilizing the well-tested CAM locking model and debug
- features. It will also be possible to process interrupts
- generated by the inserted card, which is a prerequisite for
- implementing the SDIO interface.</p>
-
- <p>The first version of the code was uploaded to Phabricator for
- review. The new stack is able to attach to the SD card and
- bring it to an operational state so it is possible to read and
- write to the card.</p>
-
- <p>The only supported SD controller driver is <tt>ti_sdhci</tt>,
- which is used on the BeagleBone Black. Modifying other
- SDHCI-compliant drivers should not be difficult.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Rework bus/target/LUN enumeration and the locking model.
- I do not really understand the CAM locking and am likely to
- do it incorrectly.</p>
- </li><li>
- <p>Modify the SDHCI driver on at least one x86 platform.
- This will make development and collaboration easier.</p>
- </li><li>
- <p>Begin implementing SDIO-specific bits.</p>
- </li></ol><hr /><h2><a name="ntb_hw(4)/if_ntb(4)-Driver-Synced-up-to-Linux" href="#ntb_hw(4)/if_ntb(4)-Driver-Synced-up-to-Linux" id="ntb_hw(4)/if_ntb(4)-Driver-Synced-up-to-Linux">ntb_hw(4)/if_ntb(4) Driver Synced up to
- Linux</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/jonmason/ntb/wiki" title="https://github.com/jonmason/ntb/wiki">Jon Mason's NTB wiki</a></td><td>
- URL: <a href="https://github.com/jonmason/ntb/wiki" title="Jon Mason's NTB wiki">https://github.com/jonmason/ntb/wiki</a></td></tr><tr><td><a href="https://www-ssl.intel.com/content/dam/www/public/us/en/documents/white-papers/xeon-c5500-c3500-non-transparent-bridge-paper.pdf" title="https://www-ssl.intel.com/content/dam/www/public/us/en/documents/white-papers/xeon-c5500-c3500-non-transparent-bridge-paper.pdf">Intel NTB whitepaper</a></td><td>
- URL: <a href="https://www-ssl.intel.com/content/dam/www/public/us/en/documents/white-papers/xeon-c5500-c3500-non-transparent-bridge-paper.pdf" title="Intel NTB whitepaper">https://www-ssl.intel.com/content/dam/www/public/us/en/documents/white-papers/xeon-c5500-c3500-non-transparent-bridge-paper.pdf</a></td></tr></table><p>
- Contact:
- Conrad
- Meyer
- &lt;<a href="mailto:cem@FreeBSD.org">cem@FreeBSD.org</a>&gt;
- </p>
- <p><tt>ntb_hw(4)</tt> is now up-to-date with the Linux NTB
- driver as of the work-in-progress 4.4 kernel (and actually,
- contains some fixes that haven't landed in the mainline Linux
- tree yet but will land in 4.5). Only Back-to-back
- ("B2B") configurations are supported at this time.
- Going forward, newer hardware may only support the B2B
- configuration.</p>
-
- <p><tt>if_ntb(4)</tt> is mostly up-to-date with the Linux NTB
- netdevice driver. Notably absent is support for changing the
- MTU at runtime.</p>
- <p>This project was sponsored by EMC / Isilon Storage Division.</p><h3>Open tasks:</h3><ol><li>
- <p>Improving <tt>if_ntb(4)</tt> to avoid using the entire Base
- Address Register (BAR) when very large BAR sizes are
- configured (e.g., 512 GB).</p>
- </li><li>
- <p>Improving <tt>pmap_mapdev(9)</tt> to somehow allocate only
- superpage mappings for large BARs, on platforms that support
- superpages. (NTB BARs can be as large as 512 GB.)</p>
- </li></ol><hr /><h2><a name="Out-of-Memory-Handler-Rewrite" href="#Out-of-Memory-Handler-Rewrite" id="Out-of-Memory-Handler-Rewrite">Out of Memory Handler Rewrite</a></h2><p>
- Contact:
- Konstantin
- Belousov
- &lt;<a href="mailto:kib@FreeBSD.org">kib@FreeBSD.org</a>&gt;
- </p>
- <p>The Out of Memory (OOM) code is intended to handle the
- situation where the system needs free memory to make progress,
- but no memory can be reused. Most often, the situation is
- that to free memory, the system needs more free memory.
- Consider a case where the system needs to page-out dirty
- pages, but needs to allocate structures to track the writes.
- OOM "solves" the problem by killing some selection
- of user processes. In other words, it trades away system
- deadlock by suffering a partial loss of user data. The
- assumption is that it is better to kill a process and recover
- data in other processes than to lose everything.</p>
-
- <p>Free memory in the FreeBSD Virtual Memory (VM) system appears
- from two sources. One is the voluntary reclamation of pages
- used by a process, for example unmapping private anonymous
- regions, or the last unlink of an otherwise unreferenced file
- with cached pages. Another source is the pagedaemon, which
- forcefully frees pages which carry data, of course after the
- data is moved to some other storage, like swap or file blocks.
- OOM is triggered when the pagedaemon definitely cannot free
- memory to satisfy the requests.</p>
-
- <p>The old criteria to trigger the OOM action was a combination
- of low free swap space and a low count of free pages (the
- latter is expressed precisely with the paging targets
- constants, but this is not relevant to the discussion). That
- test is mostly incorrect. For example, a low free page state
- might be caused by a greedy consumer allocating all pages
- freed by the page daemon in the current pass, but this does
- not preclude the page daemon from producing more pages. Also,
- since page-outs are asynchronous, the previous page daemon
- pass might not immmediately produce any free pages, but they
- would appear some short time later.</p>
-
- <p>More seriously, low swap space does not necessarily indicate
- that we are in trouble: lots of pages might not require swap
- allocations to be freed, like clean pages or pages backed by
- files. The last notion is serious, since swap-less systems
- were considered as having full swap.</p>
-
- <p>Instead of trying to deduce the deadlock from looking at the
- current VM state, the new OOM handler tracks the history of
- page daemon passes. Only when several consecutive passes
- failed to meet the paging target is an OOM kill considered
- necessary. The count of consequent failed passes was selected
- empirically, by testing on small (32M) and large (512G)
- machines. Auto-tuning of the counter is possible, but
- requires some more architectural changes to the I/O
- subsystem.</p>
-
- <p>Another issue was identified with the algorithm which selects
- a victim process for OOM kill. It compared the counts of
- pages mapping entries (PTEs) installed into the machine paging
- structures. For different reasons, the machine-dependent VM code
- (pmap) may remove the pte for a memory-resident page. Under
- some circumstances related to other measures to prevent low
- memory deadlock, very large processes which consume all system
- memory could have few or no ptes. The old OOM selector
- ignored the process which caused the deadlock, killing
- unrelated processes.</p>
-
- <p>A new function, <tt>vm_pageout_oom_pagecount()</tt>, was
- written which applies a reasonable heuristic to estimate the
- number of pages freed by killing the given process. This
- eliminates the effect of selecting small unrelated processes
- for OOM kill.</p>
-
- <p>The rewrite was committed to head in r290917 and r290920.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><hr /><h2><a name="sendfile(2)-Improvements" href="#sendfile(2)-Improvements" id="sendfile(2)-Improvements">sendfile(2) Improvements</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=293439" title="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=293439">Commit to Head</a></td><td>
- URL: <a href="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=293439" title="Commit to Head">https://svnweb.FreeBSD.org/base?view=revision&amp;revision=293439</a></td></tr><tr><td><a href="http://www.slideshare.net/facepalmtarbz2/new-sendfile-in-english" title="http://www.slideshare.net/facepalmtarbz2/new-sendfile-in-english">Slides</a></td><td>
- URL: <a href="http://www.slideshare.net/facepalmtarbz2/new-sendfile-in-english" title="Slides">http://www.slideshare.net/facepalmtarbz2/new-sendfile-in-english</a></td></tr><tr><td><a href="https://events.yandex.ru/lib/talks/2682/" title="https://events.yandex.ru/lib/talks/2682/">Presentation (in Russian)</a></td><td>
- URL: <a href="https://events.yandex.ru/lib/talks/2682/" title="Presentation (in Russian)">https://events.yandex.ru/lib/talks/2682/</a></td></tr></table><p>
- Contact:
- Gleb
- Smirnoff
- &lt;<a href="mailto:glebius@FreeBSD.org">glebius@FreeBSD.org</a>&gt;
- </p>
- <p>The <tt>sendfile(2)</tt> system call was introduced in
- 1998 as an alternative to a traditional
- <tt>read(2)</tt>/<tt>write(2)</tt> loop, speeding up server
- performance by a factor of ten at the time. Since it was
- adopted by all major operating systems, it is now used by any
- serious web server software. Wherever there is high traffic,
- there is <tt>sendfile(2)</tt> under the hood.</p>
-
- <p>Now, with FreeBSD 11, we are making the next revolutinary step
- in serving traffic. <tt>sendfile(2)</tt> no longer blocks
- waiting on disk I/O. Instead, it immediately returns control
- to the application, performing the necessary I/O in the
- background. The original <tt>sendfile(2)</tt> waited for the
- disk read operation to complete and then put the data that was
- read into the socket, then returned to userspace. If a web
- server served thousands of clients with thousands of requests,
- it was forced to spawn extra contexts from which to run
- <tt>sendfile(2)</tt> to avoid stalls. Alternatively, it could
- use special tricks like the <tt>SF_NODISKIO</tt> flag that
- forces <tt>sendfile(2)</tt> to serve only content that is
- cached in memory. Now, these tricks are in the past, and a
- web server can simply use <tt>sendfile(2)</tt> as it would use
- <tt>write(2)</tt>, without any extra care. The new sendfile
- cuts out the overhead of extra contexts, short writes, and
- extra syscalls to prepopulate the cache, bringing performance
- to a new level.</p>
-
- <p>The new syscall is built on top of two newly-introduced
- kernel features. The first is an asynchronous VM pager
- interface and the corresponding <tt>VOP_GETPAGES_ASYNC()</tt>
- file system method for UFS. The second is the concept of
- "not ready" data in sockets. When
- <tt>sendfile(2)</tt> is called, first
- <tt>VOP_GETPAGES_ASYNC()</tt> is called, which dispatches I/O
- requests for completion. Buffers with pages to be populated
- are put into the socket buffer, but flagged as not-yet-ready.
- Control immediately returns to the application. When the I/O
- is finished, the buffers are marked as ready, and the socket
- is activated to continue transmission.</p>
-
- <p>Additional features of the new <tt>sendfile</tt> are new
- flags that provide the application with extra control over the
- transmitted content. Now it is possible to prevent caching of
- content in memory, which is useful when it is known that the
- content is unlikely to be reused any time soon. In such
- cases, it is better to let the associated storage be freed,
- rather than putting the data in cache. It is also possible to
- specify a readahead with every syscall, if the application can
- predict client behavior.</p>
-
- <p>The new <tt>sendfile(2)</tt> is a drop-in replacement, API
- and ABI compatible with the old one. Applications do not even
- need to recompile to benefit from the new implementation.</p>
-
- <p>This work is a joint effort between two companies: NGINX,
- Inc., and Netflix. There were many people involved in the
- project. At its initial stage, before code was written, the
- idea of such an asynchronous drop-in replacement was discussed
- amongst Gleb Smirnoff, Scott Long, Konstantin Belousov, Adrian Chadd, and Igor
- Sysoev. The initial prototype was coded by Gleb under the
- supervision of Kostik on the VM parts of the patch, and under
- constant pressure from Igor, who demanded that <tt>nginx</tt> be
- capable of running with the new <tt>sendfile(2)</tt> with no
- modifications. The prototype demonstrated good performance
- and stability and quickly went into Netflix production in late
- 2014. During 2015, the code matured and continued serving
- production traffic at Netflix. Scott Long, Randall R. Stewart, Maksim Yevmenkin,
- and Andrew Gallatin added their contributions to the code.</p>
-
- <p>Now we are releasing the code behind our success to the
- FreeBSD community, making it available to all FreeBSD users
- worldwide!</p>
- <p>This project was sponsored by Netflix, and NGINX, Inc..</p><h3>Open tasks:</h3><ol><li>
- <p><tt>SSL_sendfile()</tt> &#8212; an extension to the new
- <tt>sendfile(2)</tt> that allows uploading session keys to
- the kernel, and then using <tt>sendfile(2)</tt> on an
- SSL-enabled socket.</p>
- </li></ol><hr /><h2><a name="sysctl-Enhancements" href="#sysctl-Enhancements" id="sysctl-Enhancements">sysctl Enhancements</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types" title="https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types">Wikipedia Entry on C99 Fixed-Width Integer Types</a></td><td>
- URL: <a href="https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types" title="Wikipedia Entry on C99 Fixed-Width Integer Types">https://en.wikipedia.org/wiki/C_data_types#Fixed-width_integer_types</a></td></tr><tr><td><a href="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=203918" title="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=203918">sysctl(8) -t Submission PR</a></td><td>
- URL: <a href="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=203918" title="sysctl(8) -t Submission PR">https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=203918</a></td></tr></table><p>
- Contact:
- Conrad
- Meyer
- &lt;<a href="mailto:cem@FreeBSD.org">cem@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Ravi
- Pokala
- &lt;<a href="mailto:rpokala@FreeBSD.org">rpokala@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Marcelo
- Araujo
- &lt;<a href="mailto:araujo@FreeBSD.org">araujo@FreeBSD.org</a>&gt;
- </p>
- <p>Support was added for fixed-width sysctls (signed and
- unsigned 8-bit, 16-bit, 32-bit, and 64-bit integers). The new
- KPIs are documented in the <tt>sysctl(9)</tt> manual page.
- The <tt>sysctl(8)</tt> command line tool supports all of the
- new types.</p>
-
- <p><tt>sysctl(8)</tt> gained the <tt>-t</tt> flag, which prints
- sysctl type information (the original patch was submitted by
- Yoshihiro Ota). This support includes the newly added
- fixed-width types.</p>
- <p>This project was sponsored by EMC / Isilon Storage Division.</p><hr /><h2><a name="Touchscreen-Support-for-Raspberry-Pi-and-Beaglebone-Black" href="#Touchscreen-Support-for-Raspberry-Pi-and-Beaglebone-Black" id="Touchscreen-Support-for-Raspberry-Pi-and-Beaglebone-Black">Touchscreen Support for Raspberry Pi and Beaglebone
- Black</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://kernelnomicon.org/?p=534" title="http://kernelnomicon.org/?p=534">Beaglebone Black with 4DCAPE-43T Demo</a></td><td>
- URL: <a href="http://kernelnomicon.org/?p=534" title="Beaglebone Black with 4DCAPE-43T Demo">http://kernelnomicon.org/?p=534</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/201510DevSummit/GraphicsStack" title="https://wiki.FreeBSD.org/201510DevSummit/GraphicsStack">Input Stack Plans</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/201510DevSummit/GraphicsStack" title="Input Stack Plans">https://wiki.FreeBSD.org/201510DevSummit/GraphicsStack</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/SummerOfCode2014/evdev_Touchscreens" title="https://wiki.FreeBSD.org/SummerOfCode2014/evdev_Touchscreens">evdev Port</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/SummerOfCode2014/evdev_Touchscreens" title="evdev Port">https://wiki.FreeBSD.org/SummerOfCode2014/evdev_Touchscreens</a></td></tr></table><p>
- Contact:
- Oleksandr
- Tymoshenko
- &lt;<a href="mailto:gonzo@FreeBSD.org">gonzo@FreeBSD.org</a>&gt;
- </p>
- <p>There are two working proof-of-concept drivers for the
- AM335x touchscreen and for the official Raspberry Pi's
- touchscreen LCD.</p>
-
- <p>Proper touchscreen support would consist of a userland event
- reading API, a kernel event reporting API, and kernel hardware
- drivers for specific devices. There is an ongoing effort to
- port the Linux <tt>evdev</tt> API to FreeBSD so applications that use
- libraries like libinput or tslib could be used without any
- major changes. Since it is not yet complete, I created a
- naive <tt>evdev</tt>-like API for both kernel and tslib and was able to
- run a demo on a Beaglebone Black with 4DCAPE-43T.</p>
-
- <p>Once <tt>evdev</tt> makes it into the tree, both hardware drivers
- can be modified to include "report events"
- portions and committed.</p>
- <hr /><br /><h1><a name="Architectures" href="#Architectures" id="Architectures">Architectures</a></h1><br /><h2><a name="armv6-Hard-Float-Default-ABI" href="#armv6-Hard-Float-Default-ABI" id="armv6-Hard-Float-Default-ABI">armv6 Hard Float Default ABI</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://bsdimp.blogspot.com/2015/12/hard-float-api-coming-soon-by-default.html" title="http://bsdimp.blogspot.com/2015/12/hard-float-api-coming-soon-by-default.html">Blog Entry</a></td><td>
- URL: <a href="http://bsdimp.blogspot.com/2015/12/hard-float-api-coming-soon-by-default.html" title="Blog Entry">http://bsdimp.blogspot.com/2015/12/hard-float-api-coming-soon-by-default.html</a></td></tr></table><p>
- Contact:
- Warner
- Losh
- &lt;<a href="mailto:imp@FreeBSD.org">imp@FreeBSD.org</a>&gt;
- </p>
- <p>Work on moving armv6 from a "soft float" ABI (but
- still using hardware floating point) to a fully "hardware
- float" API moves forward. The ability to have both soft
- and hard ABI libraries on the same system is now functional.
- All armv6 and armv7 systems we support have hardware floating
- point capabilities. We currently use the floating-point
- hardware, but with a slightly un-optimal ABI, for
- compatibility with older versions of FreeBSD. The ABI
- differences are only at the userspace level &#8212; the kernel
- does not care what floating-point ABI is used, and both types
- of binaries can run at the same time.</p>
-
- <p>The run-time linker now knows if a binary uses the hardware
- float ABI or the software float ABI by examining some fields
- in the ELF header. The linker uses different paths and config
- files for hard versus soft binaries. The <tt>rc</tt> system
- has been enhanced to load the software float paths.
- <tt>ldconfig</tt> now understands soft libraries in much the
- same way that it understands 32-bit libraries on 64-bit
- systems. No additional kernel support was necessary for this,
- apart from a minor patch to pass the ELF header information to
- the binary, which has been in the tree since last summer.</p>
-
- <p>The experimental armv6hf <tt>MACHINE_ARCH</tt> will be
- retired after a transition period. It will cease to mean
- anything different from armv6 after the build system changes
- go in. Support for building soft-float ABI libraries will
- remain in the tree, to support the <tt>WITH_LIBSOFT</tt> build
- option.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Complete documentation needs to be written.</p>
- </li><li>
- <p>Hooks into the FreeBSD build system to generate soft float and
- transition to hard float after a flag day need to be
- polished up and committed.</p>
- </li><li>
- <p>A number of different upgrade/coexistence scenarios need
- to be tested, and a full package run needs to be done to
- assess the latest state of the ports tree. This work should
- be completed by the end of January.</p>
- </li></ol><hr /><h2><a name="FreeBSD-on-Marvell-Armada38x" href="#FreeBSD-on-Marvell-Armada38x" id="FreeBSD-on-Marvell-Armada38x">FreeBSD on Marvell Armada38x</a></h2><p>
- Contact:
- Marcin
- Wojtas
- &lt;<a href="mailto:mw@semihalf.com">mw@semihalf.com</a>&gt;
- <br />
- Contact:
- Michal
- Stanek
- &lt;<a href="mailto:mst@semihalf.com">mst@semihalf.com</a>&gt;
- <br />
- Contact:
- Bartosz
- Szczepanek
- &lt;<a href="mailto:bsz@semihalf.com">bsz@semihalf.com</a>&gt;
- <br />
- Contact:
- Jan
- Dabros
- &lt;<a href="mailto:jsd@semihalf.com">jsd@semihalf.com</a>&gt;
- </p>
- <p>FreeBSD has been ported to run on the Marvell Armada38x
- platform. This SoC family boasts single/dual high-performance
- ARM Cortex-A9 CPUs.</p>
-
- <p>The multi-user SMP system is fully working and has been
- tested on Marvell DB-88F6288-GP and SolidRun ClearFog
- development boards.</p>
-
- <p>The root filesystem can be hosted on a USB 3.0/2.0 drive or
- via NFS using a PCIe network card. Experimental support is
- available for on-chip Gigabit Ethernet (NETA).</p>
-
- <p>Additional features:</p>
-
- <ul>
- <li>GIC+MPIC cascaded interrupts courtesy of INTRNG</li>
-
- <li>CESA dual-channel cryptographic engine</li>
-
- <li>USB 3.0 and 2.0</li>
-
- <li>PCIe 2.0</li>
-
- <li>I2C</li>
-
- <li>GPIO</li>
-
- <li>Watchdog</li>
-
- <li>RTC</li>
- </ul>
-
- <p>The port is under community review and will be integrated
- into head soon.</p>
- <p>This project was sponsored by Stormshield, and Semihalf.</p><h3>Open tasks:</h3><ol><li>
- <p>Optimize performance of NETA and prepare for
- submission.</p>
- </li></ol><hr /><h2><a name="FreeBSD-on-Newer-ARM-Boards" href="#FreeBSD-on-Newer-ARM-Boards" id="FreeBSD-on-Newer-ARM-Boards">FreeBSD on Newer ARM Boards</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/FreeBSD/arm/Odroid-C1" title="https://wiki.FreeBSD.org/FreeBSD/arm/Odroid-C1">FreeBSD on Odroid-C1</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/FreeBSD/arm/Odroid-C1" title="FreeBSD on Odroid-C1">https://wiki.FreeBSD.org/FreeBSD/arm/Odroid-C1</a></td></tr><tr><td><a href="https://svnweb.FreeBSD.org/changeset/base/291683" title="https://svnweb.FreeBSD.org/changeset/base/291683">Commit Adding Glue Driver</a></td><td>
- URL: <a href="https://svnweb.FreeBSD.org/changeset/base/291683" title="Commit Adding Glue Driver">https://svnweb.FreeBSD.org/changeset/base/291683</a></td></tr></table><p>
- Contact:
- John
- Wehle
- &lt;<a href="mailto:john@feith.com">john@feith.com</a>&gt;
- <br />
- Contact:
- Ganbold
- Tsagaankhuu
- &lt;<a href="mailto:ganbold@FreeBSD.org">ganbold@FreeBSD.org</a>&gt;
- </p>
- <p>We made the changes required to support the Amlogic Meson
- Ethernet controller on the Hardkernel ODROID-C1 board, which
- has an Amlogic aml8726-m8b SoC. The main effort needed was to
- write a glue driver for the Ethernet controller &#8212; the
- Amlogic Meson Ethernet controller is compatible with Synopsys
- DesignWare 10/100/1000 Ethernet MAC (<tt>if_dwc</tt>).</p>
- <hr /><h2><a name="FreeBSD-on-SoftIron-Overdrive-3000" href="#FreeBSD-on-SoftIron-Overdrive-3000" id="FreeBSD-on-SoftIron-Overdrive-3000">FreeBSD on SoftIron Overdrive 3000</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://softiron.co.uk/products/" title="http://softiron.co.uk/products/">SoftIron Website</a></td><td>
- URL: <a href="http://softiron.co.uk/products/" title="SoftIron Website">http://softiron.co.uk/products/</a></td></tr></table><p>
- Contact:
- Andrew
- Turner
- &lt;<a href="mailto:andrew@FreeBSD.org">andrew@FreeBSD.org</a>&gt;
- </p>
- <p>The SoftIron Overdrive 3000 is an ARMv8 based server with an
- 8-core AMD Opteron A1100 processor. The Overdrive 3000 has
- two 10Gbase-T Ethernet ports, two PCI Express ports, and eight
- SATA ports. FreeBSD has been updated to be able to boot on this
- hardware.</p>
-
- <p>Support for the SATA device was added to the
- <tt>ahci(4)</tt> driver. Unlike on x86, this is a Memory
- Mapped (mmio) device, and not on the PCI bus. To support
- this, a new ahci mmio driver attachment has been added.</p>
-
- <p>The generic PCIe driver has been updated to improve interrupt
- handling. This includes supporting the interrupt-map
- devicetree property, and supporting MSI and MSI-X interrupts
- on arm64.</p>
-
- <p>Support for MSI and MSI-X interrupts has been added to the
- ARM Generic Interrupt Controller v2 (gicv2) driver. This
- allows devices to use these interrupts. This has been tested
- with a collection of PCIe NIC hardware.</p>
- <p>This project was sponsored by SoftIron Inc..</p><h3>Open tasks:</h3><ol><li>
- <p>Write a driver for the 10Gbase-T NIC.</p>
- </li></ol><hr /><h2><a name="FreeBSD/arm64" href="#FreeBSD/arm64" id="FreeBSD/arm64">FreeBSD/arm64</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/arm64" title="https://wiki.FreeBSD.org/arm64">FreeBSD arm64 Wiki Entry</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/arm64" title="FreeBSD arm64 Wiki Entry">https://wiki.FreeBSD.org/arm64</a></td></tr></table><p>
- Contact:
- Andrew
- Turner
- &lt;<a href="mailto:andrew@FreeBSD.org">andrew@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Konstantin
- Belousov
- &lt;<a href="mailto:kib@FreeBSD.org">kib@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Ed
- Maste
- &lt;<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Ed
- Schouten
- &lt;<a href="mailto:ed@FreeBSD.org">ed@FreeBSD.org</a>&gt;
- </p>
- <p>Support was added for kernel modules. This included adding
- the needed relocation types to the in-kernel relocator, and
- updating the build logic to build modules for arm64. CTF data
- is currently not generated for modules due to a linker
- bug.</p>
-
- <p>Shared page support was added. This allows
- <tt>gettimeofday(2)</tt> to be implemented in userland by
- directly accessing the timer register. This reduces the
- overhead of these calls as we no longer need to call into the
- kernel. This also moves the signal trampoline code away from
- the stack, allowing for the stack to become non-executable.</p>
-
- <p>CloudABI support for arm64 was added. This included moving
- the machine-independent code into a separate file to be shared
- among all architectures. An issue in the arm64 kernel was
- found and fixed thanks to the CloudABI test suite.</p>
-
- <p>Self-hosted poudriere package builds have been tested.
- These complement the previous build strategy of using qemu
- usermode emulation. With this combination of self-hosted and
- qemu usermode building, many ports that used to be broken on
- arm64 have been fixed, resulting in over 17,000 ports building
- for the architecture.</p>
-
- <p>The machine-dependent portion of kernel support for
- single-stepping userland binaries has been started. This will
- allow debuggers like <tt>lldb</tt> to step through an
- application while debugging.</p>
-
- <p>Many small fixes have been made to FreeBSD/arm64. These
- include fixing stack tracing through exceptions, printing more
- information about "data abort" kernel panics,
- cleaning up the atomic functions, supporting multi-pass driver
- attachment, fixing userland stack alignment, cleaning up early
- page table creation, fixing asynchronous software trap
- handling, and enabling interrupts in exception handlers.</p>
- <p>This project was sponsored by The FreeBSD Foundation, and ABT Systems Ltd.</p><hr /><h2><a name="FreeBSD/RISC-V" href="#FreeBSD/RISC-V" id="FreeBSD/RISC-V">FreeBSD/RISC-V</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/riscv" title="https://wiki.FreeBSD.org/riscv">Project Wiki</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/riscv" title="Project Wiki">https://wiki.FreeBSD.org/riscv</a></td></tr></table><p>
- Contact:
- Ruslan
- Bukin
- &lt;<a href="mailto:br@bsdpad.com">br@bsdpad.com</a>&gt;
- <br />
- Contact:
- Ed
- Maste
- &lt;<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Arun
- Thomas
- &lt;<a href="mailto:arun.thomas@baesystems.com">arun.thomas@baesystems.com</a>&gt;
- </p>
- <p>We have begun work on support for the RISC-V
- architecture.</p>
-
- <p>RISC-V is a new ISA designed to support computer architecture
- research and education that is now set to become a standard
- open architecture for industry implementations.</p>
-
- <p>A minimal set of changes needed to compile the kernel
- toolchain has been committed, along with machine headers,
- run-time linker (rtld-elf) support, and libc/libstand.</p>
-
- <p>All development has been happening in a separate branch,
- with a goal of moving development to head in a few weeks.</p>
-
- <p>At present, FreeBSD/RISC-V boots to multiuser in the Spike
- simulator.</p>
- <p>This project was sponsored by DARPA, AFRL, and HEIF5.</p><h3>Open tasks:</h3><ol><li>
- <p>We plan to commit the rest of userspace (i.e., libc),
- kernel support, etc., in a few weeks.</p>
- </li></ol><hr /><h2><a name="Improvements-for-ARMv6/v7-Support" href="#Improvements-for-ARMv6/v7-Support" id="Improvements-for-ARMv6/v7-Support">Improvements for ARMv6/v7 Support</a></h2><p>
- Contact:
- Dominik
- Ermel
- &lt;<a href="mailto:der@semihalf.com">der@semihalf.com</a>&gt;
- <br />
- Contact:
- Wojciech
- Macek
- &lt;<a href="mailto:wma@semihalf.com">wma@semihalf.com</a>&gt;
- <br />
- Contact:
- Zbigniew
- Bodek
- &lt;<a href="mailto:zbb@semihalf.com">zbb@semihalf.com</a>&gt;
- </p>
- <p>Numerous improvements for the ARMv6/v7 kernel and tools
- have been developed by the Semihalf team. Those include:</p>
-
- <ul>
- <li>Fixes for KGDB support.</li>
-
- <li>Support for branch instructions in <tt>ptrace</tt> single
- stepping.</li>
-
- <li>Fixes for kernel minidumps.</li>
-
- <li>Improvements for LIBUSBBOOT.</li>
-
- <li>Support for Exynos EHCI in the loader.</li>
-
- <li>A fix for instruction single stepping in DDB.</li>
-
- <li>Support for hardware watchpoints, including watchpoints
- on SMP systems.</li>
-
- <li>Single stepping using the ARM Debug Architecture.</li>
-
- <li>Support for gzip-compressed kernel modules in
- <tt>kldload</tt>.</li>
-
- <li>Backport of the new pmap VM code to FreeBSD 10-STABLE (not
- yet sent to upstream).</li>
- </ul>
-
- <p>Most of the introduced changes have been committed to head
- and more are on the way.</p>
- <p>This project was sponsored by Juniper Networks Inc., and Semihalf.</p><h3>Open tasks:</h3><ol><li>
- <p>Finish upstreaming the hardware watchpoints support.</p>
- </li></ol><hr /><br /><h1><a name="Userland-Programs" href="#Userland-Programs" id="Userland-Programs">Userland Programs</a></h1><br /><h2><a name="Base-System-Build-Improvements" href="#Base-System-Build-Improvements" id="Base-System-Build-Improvements">Base System Build Improvements</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://lists.FreeBSD.org/pipermail/freebsd-arch/2015-December/017571.html" title="https://lists.FreeBSD.org/pipermail/freebsd-arch/2015-December/017571.html">FreeBSD-Arch Post Describing Plans</a></td><td>
- URL: <a href="https://lists.FreeBSD.org/pipermail/freebsd-arch/2015-December/017571.html" title="FreeBSD-Arch Post Describing Plans">https://lists.FreeBSD.org/pipermail/freebsd-arch/2015-December/017571.html</a></td></tr><tr><td><a href="http://www.bsdcan.org/2014/schedule/events/460.en.html" title="http://www.bsdcan.org/2014/schedule/events/460.en.html">BSDCan 2014 META_MODE Presentation</a></td><td>
- URL: <a href="http://www.bsdcan.org/2014/schedule/events/460.en.html" title="BSDCan 2014 META_MODE Presentation">http://www.bsdcan.org/2014/schedule/events/460.en.html</a></td></tr><tr><td><a href="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290433" title="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290433">WITH_FAST_DEPEND Details</a></td><td>
- URL: <a href="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290433" title="WITH_FAST_DEPEND Details">https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290433</a></td></tr><tr><td><a href="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290526" title="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290526">WITH_CCACHE_BUILD Details</a></td><td>
- URL: <a href="https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290526" title="WITH_CCACHE_BUILD Details">https://svnweb.FreeBSD.org/base?view=revision&amp;revision=290526</a></td></tr></table><p>
- Contact:
- Bryan
- Drewery
- &lt;<a href="mailto:bdrewery@FreeBSD.org">bdrewery@FreeBSD.org</a>&gt;
- </p>
- <p>Bryan Drewery (bdrewery@) has been working to improve the
- build framework as well as <tt>buildworld</tt> build times.
- The build system has been largely untouched by large-scale
- changes for many years. Most of the effort has been on
- improving the recent <tt>META_MODE</tt> merge that was
- presented at BSDCan 2014. This is a new build system that is
- not currently enabled by default but brings many benefits.
- Beyond that, some highlights of the work changing
- <tt>buildworld</tt> are:</p>
-
- <ul>
- <li><tt>WITH_FAST_DEPEND</tt>, which avoids calling
- "mkdep" during the <tt>make depend</tt> phase and
- instead generates dependency files during compilation. The
- old scheme was pre-processing all source files twice. The
- new version saves 16-35% in build times.</li>
-
- <li><tt>WITH_CCACHE_BUILD</tt> adds built-in <tt>ccache</tt>
- support, avoiding many of the historical pitfalls of
- changing <tt>CC</tt> in <tt>make.conf</tt> to use
- <tt>ccache</tt>.</li>
-
- <li>Many improvements for parallelization of the build.</li>
-
- <li><tt>LIBADD</tt> improvements to ensure proper usage of
- this tool to replace duplicate <tt>LDADD</tt> and
- <tt>DPADD</tt> statements. Further work is under way to
- reduce overlinking.</li>
-
- <li>A lot of cleanup of improper framework usage.</li>
-
- <li>Ensuring that installing files from the build tree fails
- if the destination directory is missing, rather than
- installing a file as the directory name.</li>
- </ul>
- <p>This project was sponsored by EMC / Isilon Storage Division.</p><h3>Open tasks:</h3><ol><li>
- <p>See the FreeBSD-arch mail for more information on planned
- work.</p>
- </li></ol><hr /><h2><a name="ELF-Tool-Chain-Tools" href="#ELF-Tool-Chain-Tools" id="ELF-Tool-Chain-Tools">ELF Tool Chain Tools</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://elftoolchain.sourceforge.net" title="http://elftoolchain.sourceforge.net">ELF Tool Chain Website</a></td><td>
- URL: <a href="http://elftoolchain.sourceforge.net" title="ELF Tool Chain Website">http://elftoolchain.sourceforge.net</a></td></tr></table><p>
- Contact:
- Ed
- Maste
- &lt;<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>&gt;
- </p>
- <p>The ELF Tool Chain project provides BSD-licensed
- implementations of compilation tools and libraries for
- building and analyzing ELF objects. The project began as part
- of FreeBSD but later became an independent project in order to
- encourage wider participation from others in the open-source
- developer community.</p>
-
- <p>In the last quarter of 2015 the ELF Tool Chain tools were
- updated to a snapshot of upstream Subversion revision 3272.
- Improvements include better input file validation, RISC-V
- support, support for Xen ELF notes, additional MIPS and ARM
- relocations, better performance, and bug fixes.</p>
-
- <p>The ELF Tool Chain project is planning a new release in
- the first quarter of 2016, which will facilitate wider
- testing and use by projects in addition to FreeBSD.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
- <p>Add missing functionality (PE/COFF support) to
- <tt>elfcopy</tt> and migrate the base system build.</p>
- </li><li>
- <p>Fix issues found by fuzzing inputs to the tools.</p>
- </li><li>
- <p>Add automatic support for separate debug files.</p>
- </li></ol><hr /><h2><a name="The-LLDB-Debugger" href="#The-LLDB-Debugger" id="The-LLDB-Debugger">The LLDB Debugger</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/lldb" title="https://wiki.FreeBSD.org/lldb">FreeBSD LLDB Wiki Page</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/lldb" title="FreeBSD LLDB Wiki Page">https://wiki.FreeBSD.org/lldb</a></td></tr></table><p>
- Contact:
- Ed
- Maste
- &lt;<a href="mailto:emaste@FreeBSD.org">emaste@FreeBSD.org</a>&gt;
- </p>
- <p>LLDB is the debugger from the LLVM family of projects.
- Originally developed for Mac OS X, it now also supports FreeBSD,
- NetBSD, Linux, Android, and Windows. It builds on existing
- components in the larger LLVM project, for example using
- Clang's expression parser and LLVM's disassembler.</p>
-
- <p>LLDB in the FreeBSD base system was upgraded to version 3.7.0
- as part of the Clang and LLVM upgrade, and it will similarly
- be upgraded again to 3.8.0 for FreeBSD 11.0-RELEASE.</p>
-
- <p>LLDB is now enabled by default on the amd64 and arm64
- platforms. It is now a functional basic debugger on arm64,
- after a number of fixes were made in the last quarter to both
- LLDB and the FreeBSD kernel.</p>
- <p>This project was sponsored by The FreeBSD Foundation.</p><h3>Open tasks:</h3><ol><li>
- <p>Rework the LLDB build to use LLVM and Clang shared
- libraries.</p>
- </li><li>
- <p>Port a remote debugging stub to FreeBSD.</p>
- </li><li>
- <p>Add support for local and core file kernel debugging.</p>
- </li><li>
- <p>Improve support on architectures other than amd64 and
- arm64.</p>
- </li></ol><hr /><h2><a name="Updates-to-GDB" href="#Updates-to-GDB" id="Updates-to-GDB">Updates to GDB</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/bsdjhb/gdb/tree/freebsd-threads" title="https://github.com/bsdjhb/gdb/tree/freebsd-threads">New 1:1-Only Thread Target for FreeBSD</a></td><td>
- URL: <a href="https://github.com/bsdjhb/gdb/tree/freebsd-threads" title="New 1:1-Only Thread Target for FreeBSD">https://github.com/bsdjhb/gdb/tree/freebsd-threads</a></td></tr></table><p>
- Contact:
- John
- Baldwin
- &lt;<a href="mailto:jhb@FreeBSD.org">jhb@FreeBSD.org</a>&gt;
- </p>
- <p>The KGDB option is now on by default in the
- <tt>devel/gdb</tt> port.</p>
-
- <p>Changes to support cross-debugging of crashdumps in libkvm
- were committed to head in r291406.</p>
-
- <p>A new thread target for FreeBSD that is suitable for merging
- upstream has been written and lightly tested. However, it is
- not yet available as an option in the port. This thread
- target uses <tt>ptrace(2)</tt> directly rather than
- <tt>libthread_db</tt> and as such supports threads on all ABIs
- (such as FreeBSD/i386 binaries on FreeBSD/amd64 and possibly Linux
- binaries, though that is not yet tested). It also requires
- less-invasive changes in the MD targets in GDB compared to the
- <tt>libthread_db</tt>-based target.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Add a port option for the new 1:1-only thread target.</p>
- </li><li>
- <p>Test the new 1:1-only thread target.</p>
- </li><li>
- <p>Figure out why the powerpc kgdb targets are not able to
- unwind the stack past the initial frame.</p>
- </li><li>
- <p>Add support for more platforms (arm, mips, aarch64) to
- upstream <tt>gdb</tt> for both userland and
- <tt>kgdb</tt>.</p>
- </li><li>
- <p>Add support for debugging powerpc vector registers.</p>
- </li></ol><hr /><br /><h1><a name="Ports" href="#Ports" id="Ports">Ports</a></h1><br /><h2><a name="Bringing-GitLab-into-the-Ports-Collection" href="#Bringing-GitLab-into-the-Ports-Collection" id="Bringing-GitLab-into-the-Ports-Collection">Bringing GitLab into the Ports Collection</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468" title="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468">PR for the New Port</a></td><td>
- URL: <a href="https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468" title="PR for the New Port">https://bugs.FreeBSD.org/bugzilla/show_bug.cgi?id=202468</a></td></tr><tr><td><a href="https://github.com/t-zuehlsdorff/gitlabhq/blob/8-3-docu/doc/install/installation-freebsd.md" title="https://github.com/t-zuehlsdorff/gitlabhq/blob/8-3-docu/doc/install/installation-freebsd.md">Installation Guide</a></td><td>
- URL: <a href="https://github.com/t-zuehlsdorff/gitlabhq/blob/8-3-docu/doc/install/installation-freebsd.md" title="Installation Guide">https://github.com/t-zuehlsdorff/gitlabhq/blob/8-3-docu/doc/install/installation-freebsd.md</a></td></tr><tr><td><a href="https://github.com/gitlabhq/gitlabhq/" title="https://github.com/gitlabhq/gitlabhq/">Upstream GitLab website</a></td><td>
- URL: <a href="https://github.com/gitlabhq/gitlabhq/" title="Upstream GitLab website">https://github.com/gitlabhq/gitlabhq/</a></td></tr></table><p>
- Contact:
- Torsten
- Zühlsdorff
- &lt;<a href="mailto:ports@toco-domains.de">ports@toco-domains.de</a>&gt;
- </p>
- <p>GitLab is a web-based Git repository manager with many
- features that is used by more than 100,000 organizations
- including NASA and Alibaba. It also is a very long-standing
- entry on the "Wanted Ports" list of the FreeBSD
- Wiki.</p>
-
- <p>In the last quarter, there was steady progress in the project
- itself and the porting. The current release of GitLab 8.3 is
- now based on Rails 4.2, which obsoletes the need for around 50
- new ports. Now there are only 5 dependencies left to be
- committed!</p>
-
- <p>While the new version of GitLab 8.3 eases the porting, there
- are big changes since the last working port of GitLab 7.14.
- Nonetheless, it could be expected to see the next working port
- in the first quarter of 2016.</p>
- <p>This project was sponsored by anyMOTION GRAPHICS GmbH, Düsseldorf, Germany.</p><h3>Open tasks:</h3><ol><li>
- <p>Update the patches from GitLab 7.14 to 8.3.</p>
- </li><li>
- <p>Update the documentation.</p>
- </li><li>
- <p>Provide an updated patch.</p>
- </li></ol><hr /><h2><a name="GNOME-on-FreeBSD" href="#GNOME-on-FreeBSD" id="GNOME-on-FreeBSD">GNOME on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.FreeBSD.org/gnome" title="http://www.FreeBSD.org/gnome">FreeBSD Gnome Website</a></td><td>
- URL: <a href="http://www.FreeBSD.org/gnome" title="FreeBSD Gnome Website">http://www.FreeBSD.org/gnome</a></td></tr><tr><td><a href="https://github.com/FreeBSD/freebsd-ports-gnome" title="https://github.com/FreeBSD/freebsd-ports-gnome">Devel Repository</a></td><td>
- URL: <a href="https://github.com/FreeBSD/freebsd-ports-gnome" title="Devel Repository">https://github.com/FreeBSD/freebsd-ports-gnome</a></td></tr><tr><td><a href="https://wiki.gnome.org/Projects/Jhbuild/FreeBSD" title="https://wiki.gnome.org/Projects/Jhbuild/FreeBSD">Upstream Build Bot</a></td><td>
- URL: <a href="https://wiki.gnome.org/Projects/Jhbuild/FreeBSD" title="Upstream Build Bot">https://wiki.gnome.org/Projects/Jhbuild/FreeBSD</a></td></tr><tr><td><a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html" title="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html">USE_GNOME Porter's Handbook Chapter</a></td><td>
- URL: <a href="https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html" title="USE_GNOME Porter's Handbook Chapter">https://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/using-gnome.html</a></td></tr></table><p>
- Contact: FreeBSD GNOME Team &lt;<a href="mailto:freebsd-gnome@FreeBSD.org">freebsd-gnome@FreeBSD.org</a>&gt;
- </p>
- <p>The FreeBSD GNOME Team maintains the GNOME, MATE, and CINNAMON
- desktop environments and graphical user interfaces for FreeBSD.
- GNOME 3 is part of the GNU Project. MATE is a fork of the
- GNOME 2 desktop. CINNAMON is a desktop environment using
- GNOME 3 technologies but with a GNOME 2 look and feel.</p>
-
- <p>This quarter, due to limited available time there was not
- much progress. This began to change in December, when work
- started on porting MATE 1.12 and CINNAMON 2.8 to FreeBSD.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>The FreeBSD GNOME website is stale. Work is under way to
- improve it.</p>
- </li><li>
- <p>Continue working on investigating the issues blocking
- GNOME 3.18.</p>
- </li></ol><hr /><h2><a name="IPv6-Promotion-Campaign" href="#IPv6-Promotion-Campaign" id="IPv6-Promotion-Campaign">IPv6 Promotion Campaign</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/IPv6PortsTODO" title="https://wiki.FreeBSD.org/IPv6PortsTODO">Wiki Page</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/IPv6PortsTODO" title="Wiki Page">https://wiki.FreeBSD.org/IPv6PortsTODO</a></td></tr></table><p>
- Contact:
- Torsten
- Zühlsdorff
- &lt;<a href="mailto:ports@toco-domains.de">ports@toco-domains.de</a>&gt;
- </p>
- <p>There are more and more machines on the internet that
- <strong>only</strong> support IPv6. I manage some of them,
- and was regularly hit by missing IPv6 support when
- fetching the distfiles needed for building
- ports.</p>
-
- <p>I did some research into the impact of missing IPv6 support
- on the ports tree. The results are that 10,308 of 25,522
- ports are not fetchable when using IPv6. This renders,
- through dependencies, a total of 17,715 ports unbuildable from
- IPv6-only systems. All you can do then is wait and hope that
- <tt>distcache.FreeBSD.org</tt> caches the distfile. But this
- will take some time, which might not be a luxury available
- when a piece of software in use is hit by a security
- issue.</p>
-
- <p>Based on the research, a promotion campaign for IPv6 was
- started. Some volunteers will contact the relevant system
- administrators and try to convince them to support IPv6. This
- will start in January 2016 and will hopefully create some
- progress soon.</p>
- <hr /><h2><a name="KDE-on-FreeBSD" href="#KDE-on-FreeBSD" id="KDE-on-FreeBSD">KDE on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://FreeBSD.kde.org/" title="https://FreeBSD.kde.org/">KDE on FreeBSD Website</a></td><td>
- URL: <a href="https://FreeBSD.kde.org/" title="KDE on FreeBSD Website">https://FreeBSD.kde.org/</a></td></tr><tr><td><a href="https://FreeBSD.kde.org/area51.php" title="https://FreeBSD.kde.org/area51.php">Experimental KDE Ports Staging Area</a></td><td>
- URL: <a href="https://FreeBSD.kde.org/area51.php" title="Experimental KDE Ports Staging Area">https://FreeBSD.kde.org/area51.php</a></td></tr><tr><td><a href="https://wiki.FreeBSD.org/KDE" title="https://wiki.FreeBSD.org/KDE">KDE on FreeBSD Wiki</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/KDE" title="KDE on FreeBSD Wiki">https://wiki.FreeBSD.org/KDE</a></td></tr><tr><td><a href="https://mail.kde.org/mailman/listinfo/kde-FreeBSD" title="https://mail.kde.org/mailman/listinfo/kde-FreeBSD">KDE/FreeBSD Mailing List</a></td><td>
- URL: <a href="https://mail.kde.org/mailman/listinfo/kde-FreeBSD" title="KDE/FreeBSD Mailing List">https://mail.kde.org/mailman/listinfo/kde-FreeBSD</a></td></tr><tr><td><a href="http://src.mouf.net/area51/log/branches/plasma5" title="http://src.mouf.net/area51/log/branches/plasma5">Development Repository for Integrating KDE Frameworks 5 and Plasma 5</a></td><td>
- URL: <a href="http://src.mouf.net/area51/log/branches/plasma5" title="Development Repository for Integrating KDE Frameworks 5 and Plasma 5">http://src.mouf.net/area51/log/branches/plasma5</a></td></tr></table><p>
- Contact: KDE on FreeBSD team &lt;<a href="mailto:kde@FreeBSD.org">kde@FreeBSD.org</a>&gt;
- </p>
- <p>The KDE on FreeBSD team focuses on packaging and making sure
- that the experience of KDE and Qt on FreeBSD is as good as
- possible.</p>
-
- <p>The team kept busy during the last quarter of 2015. Quite
- a few big updates were committed to the ports tree, and a few
- more are being worked on in our experimental repository.</p>
-
- <p>As in previous quarters, we would like to thank several
- people who have contributed with machines, patches, and
- general help. Tobias Berner, Guido Falsi (madpilot@),
- Adriaan de Groot, Ralf Nolden, Steve Wills (swills@), and
- Josh Paetzel (jpaetzel@) have been essential to our work.</p>
-
- <p>The following big updates landed in the ports tree this
- quarter. In many cases, we have also contributed patches to
- the upstream projects.</p>
-
- <ul>
- <li>CMake 3.4.0 and 3.4.1</li>
-
- <li>Calligra 2.9.1, the latest release of the integrated
- work applications suite. Calligra had last been updated in
- the ports tree at the end of 2013!</li>
-
- <li>PyQt4 4.11.4, QScintilla2 2.9.1 and SIP 4.17.</li>
-
- <li>PyQt5 5.5.1. Thanks to the work spearheaded by Guido
- Falsi and Tobias Berner in the previous quarter, the PyQt5
- ports have finally been committed to the ports tree. Not
- only was this long-awaited on its own, it allows other ports
- to be updated to their latest versions.</li>
-
- <li>QtCreator 3.5.1 and 3.6.0.</li>
-
- <li>A couple of Qt5 packaging bugs were fixed: it should now
- be more straightforward to use the Qt5 ports to build
- software outside the ports tree, and it is now possible to
- build ports that require a C++11 compiler and Qt5 on FreeBSD
- 9.x.</li>
- </ul>
-
- <p>Work on updating the Qt5 ports to their latest version, as
- well as porting KDE Frameworks 5 and Plasma 5 to FreeBSD, is well
- under way in our experimental area51 repository. At the
- moment, it contains Qt5 5.5.1, KDE Frameworks 5.17.0, Plasma
- 5.5.1 and KDE Applications 15.12.0.</p>
-
- <p>Users interested in testing those ports are encouraged to
- follow the instructions in
- <a href="https://FreeBSD.kde.org/area51.php" shape="rect">our website</a>
- and report their results to our mailing list. Qt5 5.5.1 is in
- our "qt-5.5" branch, and Plasma 5 and the rest is in
- the "plasma5" branch (which also contains Qt
- 5.5.1).</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Commit the Qt5 5.5.1 update.</p>
- </li><li>
- <p>Land the KDE Frameworks 5 and Plasma 5 ports in the
- tree.</p>
- </li><li>
- <p>Investigate what needs to be done to make QtWebEngine,
- the Chromium-based replacement for QtWebKit, work on
- FreeBSD.</p>
- </li></ol><hr /><h2><a name="Linux-Kernel-as-a-Library-Added-to-the-Ports-Collection" href="#Linux-Kernel-as-a-Library-Added-to-the-Ports-Collection" id="Linux-Kernel-as-a-Library-Added-to-the-Ports-Collection">Linux Kernel as a Library Added to the Ports
- Collection</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/lkl/linux" title="https://github.com/lkl/linux">Upstream LKL Github repository</a></td><td>
- URL: <a href="https://github.com/lkl/linux" title="Upstream LKL Github repository">https://github.com/lkl/linux</a></td></tr></table><p>
- Contact:
- Conrad
- Meyer
- &lt;<a href="mailto:cem@FreeBSD.org">cem@FreeBSD.org</a>&gt;
- </p>
- <p>LKL ("Linux Kernel as a Library") is a special
- "architecture" of the full Linux kernel that builds
- as a userspace library on various platforms, including FreeBSD.
- One application of such a library is using Linux filesystem
- drivers to implement a FUSE backend.</p>
-
- <p>fusefs-lkl's <tt>lklfuse</tt> binary is such a FUSE
- filesystem. It can mount <tt>ext4/3/2</tt>, <tt>XFS</tt>, and
- <tt>BTRFS</tt> read-write, using the native drivers from
- Linux.</p>
-
- <p><tt>sysutils/fusefs-lkl</tt> can now be installed either from
- packages or ports, providing access to these filesystems on
- FreeBSD via FUSE.</p>
- <hr /><h2><a name="LXQt-on-FreeBSD" href="#LXQt-on-FreeBSD" id="LXQt-on-FreeBSD">LXQt on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/LXQt" title="https://wiki.FreeBSD.org/LXQt">FreeBSD LXQt Project</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/LXQt" title="FreeBSD LXQt Project">https://wiki.FreeBSD.org/LXQt</a></td></tr><tr><td><a href="https://www.assembla.com/spaces/lxqt/subversion/source" title="https://www.assembla.com/spaces/lxqt/subversion/source">LXQt Devel Repository</a></td><td>
- URL: <a href="https://www.assembla.com/spaces/lxqt/subversion/source" title="LXQt Devel Repository">https://www.assembla.com/spaces/lxqt/subversion/source</a></td></tr></table><p>
- Contact:
- Olivier
- Duchateau
- &lt;<a href="mailto:olivierd@FreeBSD.org">olivierd@FreeBSD.org</a>&gt;
- </p>
- <p><a href="http://lxqt.org/" shape="rect">LXQt</a> is the Qt port of and
- the upcoming version of LXDE, the Lightweight Desktop
- Environment. It is the product of the merge between the
- LXDE-Qt and the Razor-qt projects.</p>
-
- <p>The porting effort remains very much a work in progress: it
- needs some components of Plasma 5, the new major KDE
- workspace.</p>
-
- <p>Currently, only the 0.10 branch is functional. See our wiki
- page for a complete list of applications.</p>
-
- <p>We also sent updates for some components of LXDE, required
- for the LXQt desktop:</p>
-
- <ul>
- <li><tt>x11/menu-cache</tt> 1.0.1</li>
-
- <li><tt>x11/lxmenu-data</tt> 0.1.4</li>
- </ul>
-
- <p>Binary packages are available (only for test purposes) which
- are regularly tested with the KDE development repository.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Port libsysstat to BSD systems.</p>
- </li><li>
- <p>Fix some issues that need to be resolved, especially the
- shutdown and reboot commands.</p>
- </li></ol><hr /><h2><a name="New-Tools-to-Enhance-the-Porting-Experience" href="#New-Tools-to-Enhance-the-Porting-Experience" id="New-Tools-to-Enhance-the-Porting-Experience">New Tools to Enhance the Porting Experience</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/FreeBSD/pytoport" title="https://github.com/FreeBSD/pytoport">pytoport: Generate FreeBSD Ports from Python modules on PyPI</a></td><td>
- URL: <a href="https://github.com/FreeBSD/pytoport" title="pytoport: Generate FreeBSD Ports from Python modules on PyPI">https://github.com/FreeBSD/pytoport</a></td></tr><tr><td><a href="https://github.com/bbqsrc/bandar" title="https://github.com/bbqsrc/bandar">bandar: Create Development Overlays for the Ports Tree</a></td><td>
- URL: <a href="https://github.com/bbqsrc/bandar" title="bandar: Create Development Overlays for the Ports Tree">https://github.com/bbqsrc/bandar</a></td></tr><tr><td><a href="https://github.com/bbqsrc/skog-python" title="https://github.com/bbqsrc/skog-python">skog: Generate Visual Dependency Trees for FreeBSD Ports</a></td><td>
- URL: <a href="https://github.com/bbqsrc/skog-python" title="skog: Generate Visual Dependency Trees for FreeBSD Ports">https://github.com/bbqsrc/skog-python</a></td></tr><tr><td><a href="https://github.com/bbqsrc/spdx-lookup-python" title="https://github.com/bbqsrc/spdx-lookup-python">spdx-lookup: SPDX License List Query Tool</a></td><td>
- URL: <a href="https://github.com/bbqsrc/spdx-lookup-python" title="spdx-lookup: SPDX License List Query Tool">https://github.com/bbqsrc/spdx-lookup-python</a></td></tr></table><p>
- Contact:
- Brendan
- Molloy
- &lt;<a href="mailto:brendan+freebsd@bbqsrc.net">brendan+freebsd@bbqsrc.net</a>&gt;
- </p>
- <p>When I starting working on ports for FreeBSD in the last couple
- of weeks, I found that my workflow was not as efficient as it
- could be using just the available tools, so I made a few that
- could be useful to the development community at large. All of
- these have been or will soon be added to the Ports tree, so
- you can play with them today!</p>
-
- <p><tt>pytoport</tt> is a command-line application that
- generates a skeleton port for a given PyPI package name. It
- attempts to generate the correct dependencies, makes a good
- attempt at guessing the license using <tt>spdx-lookup</tt>,
- and generates a <tt>pkg-descr</tt>. This made generating the
- fifteen or so ports I was working on a complete breeze.</p>
-
- <p>While doing this, however, I noticed that some ports were
- bringing in dependencies that I did not expect, and I needed
- some way to visualise this. <tt>skog</tt> builds a dependency
- tree from the depends lists output by the Ports framework, and
- displays it on the command line (with extra shiny output if
- you are using UTF-8). No more pesky example and documentation
- dependencies being dragged in when you <em>clearly</em>
- toggled that <tt>OPTION</tt> as far off as it would go.</p>
-
- <p>While doing all of this, I found it cumbersome to be copying
- ports back and forth between my small development tree living
- in git and the larger upstream SVN tree I was using in
- poudriere. I built a tool called <tt>bandar</tt> that takes
- advantage of the FUSE version of unionfs to easily overlay my
- dev tree on the upstream tree, run lint checks, poudriere, and
- generate archives with ease.</p>
-
- <p>I am very impressed with how easy it was to build more
- tooling for FreeBSD. I hope some of these tools will be of some
- use to you, and as always, I'd love to hear your feedback!</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Improve <tt>skog</tt> to support searching a tree for a
- certain port.</p>
- </li><li>
- <p>Get the <tt>bandar</tt> port completed.</p>
- </li><li>
- <p>Continue to improve <tt>pytoport</tt>, adding
- <tt>trove</tt> support and better dependency handling.</p>
- </li><li>
- <p>Patches welcome for all of the above!</p>
- </li></ol><hr /><h2><a name="Node.js-Modules" href="#Node.js-Modules" id="Node.js-Modules">Node.js Modules</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.assembla.com/spaces/cozycloud/subversion/source" title="https://www.assembla.com/spaces/cozycloud/subversion/source">Node.js Modules Repository</a></td><td>
- URL: <a href="https://www.assembla.com/spaces/cozycloud/subversion/source" title="Node.js Modules Repository">https://www.assembla.com/spaces/cozycloud/subversion/source</a></td></tr></table><p>
- Contact:
- Olivier
- Duchateau
- &lt;<a href="mailto:olivierd@FreeBSD.org">olivierd@FreeBSD.org</a>&gt;
- </p>
- <p>Node.js is a platform built on Chrome's JavaScript runtime
- for easily building fast, scalable network applications. It
- uses an event-driven, non-blocking I/O model that makes it
- lightweight and efficient &#8212; perfect for data-intensive
- real-time applications that run across distributed
- devices.</p>
-
- <p>The goal of this project is to make it easy to install the
- modules available in the
- <a href="http://npmjs.org/" shape="rect">npm package registry</a>.</p>
-
- <p>Currently, the repository contains slightly fewer than 300
- new ports, in particular:</p>
-
- <ul>
- <li>Socket.IO, a library for realtime web applications</li>
-
- <li>Jison, a JavaSript parser generator</li>
- </ul>
-
- <p>We have improved the USES framework:</p>
-
- <ul>
- <li>Users can define which version of Node.js will be
- installed through <tt>/etc/make.conf</tt>.</li>
-
- <li><tt>node-gyp</tt> is now well-integrated into the USES
- framework, via the <strong>build</strong> argument.</li>
-
- <li>The <tt>pkg-plist</tt> is now automatically generated
- to make <tt>portlint</tt> happy.</li>
- </ul>
-
- <p>Each port is up-to-date.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Update the pre-draft documentation.</p>
- </li><li>
- <p>Bring in grunt.js (and modules), the JavaScript task
- runner.</p>
- </li></ol><hr /><h2><a name="Ports-Collection" href="#Ports-Collection" id="Ports-Collection">Ports Collection</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.FreeBSD.org/ports/" title="http://www.FreeBSD.org/ports/">Ports Collection Landing Page</a></td><td>
- URL: <a href="http://www.FreeBSD.org/ports/" title="Ports Collection Landing Page">http://www.FreeBSD.org/ports/</a></td></tr><tr><td><a href="https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html" title="https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html">Contributor's Guide</a></td><td>
- URL: <a href="https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html" title="Contributor's Guide">https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html</a></td></tr><tr><td><a href="http://portsmon.FreeBSD.org/index.html" title="http://portsmon.FreeBSD.org/index.html">Ports Monitoring Service</a></td><td>
- URL: <a href="http://portsmon.FreeBSD.org/index.html" title="Ports Monitoring Service">http://portsmon.FreeBSD.org/index.html</a></td></tr><tr><td><a href="http://www.FreeBSD.org/portmgr/index.html" title="http://www.FreeBSD.org/portmgr/index.html">Ports Management Team Website</a></td><td>
- URL: <a href="http://www.FreeBSD.org/portmgr/index.html" title="Ports Management Team Website">http://www.FreeBSD.org/portmgr/index.html</a></td></tr><tr><td><a href="http://www.facebook.com/portmgr" title="http://www.facebook.com/portmgr">Portmgr on Facebook</a></td><td>
- URL: <a href="http://www.facebook.com/portmgr" title="Portmgr on Facebook">http://www.facebook.com/portmgr</a></td></tr></table><p>
- Contact:
- Frederic
- Culot
- &lt;<a href="mailto:portmgr-secretary@FreeBSD.org">portmgr-secretary@FreeBSD.org</a>&gt;
- <br />
- Contact:
- Frederic
- Culot
- &lt;<a href="mailto:culot@FreeBSD.org">culot@FreeBSD.org</a>&gt;
- <br />
- Contact: FreeBSD Ports Management Team &lt;<a href="mailto:portmgr@FreeBSD.org">portmgr@FreeBSD.org</a>&gt;
- </p>
- <p>As of the end of the fourth quarter, the ports tree holds a
- bit more than 25,000 ports, and the PR count is around 2,000.
- The activity on the ports tree remains steady, with about
- 7,000 commits performed by almost 120 active committers.</p>
-
- <p>On the problem reports front, figures show an encouraging
- trend, with a significant increase in the number of PRs fixed
- during Q4. Indeed, almost 1,800 reports were fixed, which
- makes an increase of about 20% compared to Q3.</p>
-
- <p>In Q4, eight commit bits were taken in for safekeeping,
- following an inactivity period of more than 18 months (lioux,
- lippe, simon, jhay, max, sumikawa, alexey, sperber). Three
- new developers were granted a ports commit bit (Kenji Takefu,
- Carlos Puga Medina, and Ian Lepore), and one returning
- committer (miwi) had his commit bit reinstated.</p>
-
- <p>Also related to the management of ports commit bits, nox's
- grants were revoked, since the FreeBSD developers learned that
- Juergen Lock had passed away.</p>
-
- <p>On the management side, no changes were made to the portmgr
- team during Q4.</p>
-
- <p>On QA side 33 exp-runs were performed to validate sensitive
- updates or cleanups. Amongst those noticeable changes are the
- update to GCC 4.9, CMake to 3.4.1, PostgreSQL to 9.4, and
- ruby-gems to 2.5.0. Some infrastructure changes included the
- usage of a <tt>WRKSRC</tt> different from <tt>WRKDIR</tt> when
- <tt>NO_WRKSUBDIR</tt> is set, the removal of
- <tt>bsd.cpu.mk</tt> from <tt>sys.mk</tt>, and the move of
- <tt>QT_NONSTANDARD</tt> to <tt>bsd.qt.mk</tt>.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>We would like to remind everyone that the ports tree is
- built and run by volunteers, and any help is greatly
- appreciated. While Q4 saw a significant increase in the
- number of problem reports fixed, we encourage all ports
- committers to have a look at the issues reported by our
- users and try to fix as many as possible. Many thanks to
- all who made a contribution during Q4, and keep up the
- good work in 2016!</p>
- </li></ol><hr /><h2><a name="Supporting-Variants-in-the-Ports-Framework" href="#Supporting-Variants-in-the-Ports-Framework" id="Supporting-Variants-in-the-Ports-Framework">Supporting Variants in the Ports Framework</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/bbqsrc/poudriere/compare/master...feature/variants" title="https://github.com/bbqsrc/poudriere/compare/master...feature/variants">Poudriere PoC with Variants</a></td><td>
- URL: <a href="https://github.com/bbqsrc/poudriere/compare/master...feature/variants" title="Poudriere PoC with Variants">https://github.com/bbqsrc/poudriere/compare/master...feature/variants</a></td></tr><tr><td><a href="https://gist.github.com/bbqsrc/e7e3a54d84706485aa3a" title="https://gist.github.com/bbqsrc/e7e3a54d84706485aa3a">Ports Makefile PoC with Examples</a></td><td>
- URL: <a href="https://gist.github.com/bbqsrc/e7e3a54d84706485aa3a" title="Ports Makefile PoC with Examples">https://gist.github.com/bbqsrc/e7e3a54d84706485aa3a</a></td></tr></table><p>
- Contact:
- Brendan
- Molloy
- &lt;<a href="mailto:brendan+freebsd@bbqsrc.net">brendan+freebsd@bbqsrc.net</a>&gt;
- </p>
- <p>I recently became involved with FreeBSD (as in, the last 2-3
- weeks), and found myself quickly involved with Ports
- development. What struck me immediately was the difficulty in
- providing a Python package that was depended upon by multiple
- versions of Python. As it turns out, poudriere can currently
- only generate one package per port, meaning that a Python
- version-neutral (compatible with 2.x and 3.x) port cannot
- simultaneously be packaged for each variant at the same
- time.</p>
-
- <p>I discussed the issue with Kubilay Kocak, who suggested that I
- look into implementing a "variants protocol" within
- the Ports framework and the necessary changes to poudriere to
- allow a port to generate more than one package.</p>
-
- <p>Support for variants is strongly needed in Ports and
- provides significant benefits.</p>
-
- <ul>
- <li>It would allow Python and other languages to provide
- packages for dependencies for multiple language versions
- from the same port.</li>
-
- <li>It alleviates the need for so-called "slave
- ports", as a single port could now have multiple
- generated packages from a single port.</li>
-
- <li>It would have a very small impact on the greater Ports
- ecosystem: adding only two new variables, <tt>VARIANT</tt>
- and <tt>VARIANTS</tt>.</li>
-
- <li>It would provide a more consistent approach between
- different packaging teams for handling variations.</li>
- </ul>
-
- <p>For a simple example, <tt>editors/vim-lite</tt> could
- be folded into the <tt>editors/vim</tt> port, while still
- generating a <tt>vim</tt> and <tt>vim-lite</tt> package.
- For Python, <tt>VARIANTS</tt> can be derived from the already
- used <tt>USES</tt> flags and generate compatible packages.
- <tt>py27-foobar</tt> and <tt>py34-foobar</tt> could now be
- consistently generated by poudriere without issue.</p>
-
- <p>Fortunately, this is not a wishful thinking piece. I dug
- in my heels and have implemented a proof-of-concept
- implementation of variants in the Ports framework, including
- the necessary modifications to poudriere in order to support
- it. It was mildly upsettling to find that poudriere is mostly
- written in Bourne shell scripts, but I pressed on
- nonetheless.</p>
-
- <p>I started with
- <a href="https://github.com/bapt/ports-wip/compare/variants" shape="rect">the prototype made by Baptiste Daroussin</a>
- as a base, and built from there. The poudriere PoC aims to
- limit changes as much as possible to merely adding support for
- the new variants flags, while also at the request of Kubilay Kocak
- making the logging output more package-centric (as opposed to
- port-centric) as a result of these changes.</p>
-
- <p>This is a <strong>work in progress</strong>, and I would
- love to hear your feedback. I have enjoyed my first few weeks
- working on FreeBSD, and I hope to stay here for quite some
- time.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Any constructive feedback on the implementation would be
- very welcome!</p>
- </li><li>
- <p>Hopefully the code will be of sufficient quality to be
- considered for formal review in the coming months.</p>
- </li></ol><hr /><h2><a name="Xfce-on-FreeBSD" href="#Xfce-on-FreeBSD" id="Xfce-on-FreeBSD">Xfce on FreeBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://wiki.FreeBSD.org/Xfce" title="https://wiki.FreeBSD.org/Xfce">FreeBSD Xfce Project</a></td><td>
- URL: <a href="https://wiki.FreeBSD.org/Xfce" title="FreeBSD Xfce Project">https://wiki.FreeBSD.org/Xfce</a></td></tr><tr><td><a href="https://www.assembla.com/spaces/xfce4/subversion/source" title="https://www.assembla.com/spaces/xfce4/subversion/source">FreeBSD Xfce Repository</a></td><td>
- URL: <a href="https://www.assembla.com/spaces/xfce4/subversion/source" title="FreeBSD Xfce Repository">https://www.assembla.com/spaces/xfce4/subversion/source</a></td></tr></table><p>
- Contact: FreeBSD Xfce Team &lt;<a href="mailto:xfce@FreeBSD.org">xfce@FreeBSD.org</a>&gt;
- </p>
- <p>Xfce is a free software desktop environment for Unix and
- Unix-like platforms, such as FreeBSD. It aims to be fast and
- lightweight, while still being visually appealing and easy to
- use.</p>
-
- <p>During this quarter, the team has kept these applications
- up-to-date:</p>
-
- <ul>
- <li><tt>audio/xfce4-pulseaudio-plugin</tt> 0.2.4</li>
- <li><tt>multimedia/xfce4-parole</tt> 0.8.1</li>
- <li><tt>x11/xfce4-whiskermenu-plugin</tt> 1.5.2</li>
- </ul>
-
- <p>We also follow the unstable releases (available in our
- experimental repository) of:</p>
-
- <ul>
- <li><tt>x11/xfce4-dashboard</tt> 0.5.4</li>
- </ul>
- <h3>Open tasks:</h3><ol><li>
- <p>Propose a patch to upstream to fix Xfdashboard with our
- version of OpenGL (it currently coredumps).</p>
- </li></ol><hr /><br /><h1><a name="Documentation" href="#Documentation" id="Documentation">Documentation</a></h1><br /><h2><a name="&quot;FreeBSD-Mastery:-Specialty-Filesystems&quot;-Early-Access-Version-Now-Available" href="#&quot;FreeBSD-Mastery:-Specialty-Filesystems&quot;-Early-Access-Version-Now-Available" id="&quot;FreeBSD-Mastery:-Specialty-Filesystems&quot;-Early-Access-Version-Now-Available">"FreeBSD Mastery: Specialty Filesystems" Early Access Version Now Available</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://www.michaelwlucas.com/nonfiction/fmsf" title="https://www.michaelwlucas.com/nonfiction/fmsf">Book site</a></td><td>
- URL: <a href="https://www.michaelwlucas.com/nonfiction/fmsf" title="Book site">https://www.michaelwlucas.com/nonfiction/fmsf</a></td></tr><tr><td><a href="https://www.tiltedwindmillpress.com/?product=fmspf" title="https://www.tiltedwindmillpress.com/?product=fmspf">Early access version</a></td><td>
- URL: <a href="https://www.tiltedwindmillpress.com/?product=fmspf" title="Early access version">https://www.tiltedwindmillpress.com/?product=fmspf</a></td></tr></table><p>
- Contact:
- Michael
- Lucas
- &lt;<a href="mailto:mwlucas@michaelwlucas.com">mwlucas@michaelwlucas.com</a>&gt;
- </p>
- <p><u>FreeBSD Mastery: Specialty Filesystems</u> is now in
- copyediting. The ebook should be available by the end of
- January at all major vendors, and the print in February.</p>
-
- <p>The book covers everything from removable media, to FUSE,
- NFSv4 ACLs, iSCSI, CIFS, and more.</p>
-
- <p>If you act really quickly, you can get the electronic early
- access version at a 10% discount. You will get the final
- ebook when it comes out as well. (This offer evaporates when
- the final version comes out.)</p>
- <hr /><h2><a name="style(9)-Enhanced-to-Allow-C99-bool" href="#style(9)-Enhanced-to-Allow-C99-bool" id="style(9)-Enhanced-to-Allow-C99-bool">style(9) Enhanced to Allow C99
- bool</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://lists.FreeBSD.org/pipermail/svn-src-head/2015-December/079671.html" title="https://lists.FreeBSD.org/pipermail/svn-src-head/2015-December/079671.html">Bruce's Email Requesting bool be Added to style(9)</a></td><td>
- URL: <a href="https://lists.FreeBSD.org/pipermail/svn-src-head/2015-December/079671.html" title="Bruce's Email Requesting bool be Added to style(9)">https://lists.FreeBSD.org/pipermail/svn-src-head/2015-December/079671.html</a></td></tr><tr><td><a href="https://reviews.FreeBSD.org/D4384" title="https://reviews.FreeBSD.org/D4384">Differential Revision for the Change</a></td><td>
- URL: <a href="https://reviews.FreeBSD.org/D4384" title="Differential Revision for the Change">https://reviews.FreeBSD.org/D4384</a></td></tr></table><p>
- Contact:
- Bruce
- Evans
- &lt;<a href="mailto:brde@optusnet.com.au">brde@optusnet.com.au</a>&gt;
- <br />
- Contact:
- Conrad
- Meyer
- &lt;<a href="mailto:cem@FreeBSD.org">cem@FreeBSD.org</a>&gt;
- </p>
- <p>Use of <tt>bool</tt> is now allowed. It was allowed
- previously, as well, but now it is <em>really</em> allowed.
- Party like it's 1999!</p>
- <p>This project was sponsored by EMC / Isilon Storage Division.</p><h3>Open tasks:</h3><ol><li>
- <p>Specify <tt>style(9)</tt>'s opinion on
- <tt>iso646.h.</tt></p>
- </li><li>
- <p>Fix <tt>intmax_t</tt> to be 128-bit on platforms where
- <tt>__int128_t</tt> is used.</p>
- </li></ol><hr /><br /><h1><a name="Miscellaneous" href="#Miscellaneous" id="Miscellaneous">Miscellaneous</a></h1><br /><h2><a name="HardenedBSD" href="#HardenedBSD" id="HardenedBSD">HardenedBSD</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://hardenedbsd.org/" title="https://hardenedbsd.org/">HardenedBSD Website</a></td><td>
- URL: <a href="https://hardenedbsd.org/" title="HardenedBSD Website">https://hardenedbsd.org/</a></td></tr><tr><td><a href="https://hardenedbsd.org/article/shawn-webb/2015-12-31/introducing-hardenedbsds-new-binary-updater" title="https://hardenedbsd.org/article/shawn-webb/2015-12-31/introducing-hardenedbsds-new-binary-updater">Introducing HardenedBSD's New Binary Updater</a></td><td>
- URL: <a href="https://hardenedbsd.org/article/shawn-webb/2015-12-31/introducing-hardenedbsds-new-binary-updater" title="Introducing HardenedBSD's New Binary Updater">https://hardenedbsd.org/article/shawn-webb/2015-12-31/introducing-hardenedbsds-new-binary-updater</a></td></tr><tr><td><a href="https://hardenedbsd.org/article/shawn-webb/2015-11-22/introducing-secadm-030-beta-01" title="https://hardenedbsd.org/article/shawn-webb/2015-11-22/introducing-secadm-030-beta-01">secadm Beta Published</a></td><td>
- URL: <a href="https://hardenedbsd.org/article/shawn-webb/2015-11-22/introducing-secadm-030-beta-01" title="secadm Beta Published">https://hardenedbsd.org/article/shawn-webb/2015-11-22/introducing-secadm-030-beta-01</a></td></tr><tr><td><a href="https://hardenedbsd.org/article/admin/2015-11-22/new-package-building-server" title="https://hardenedbsd.org/article/admin/2015-11-22/new-package-building-server">New Package Building Server</a></td><td>
- URL: <a href="https://hardenedbsd.org/article/admin/2015-11-22/new-package-building-server" title="New Package Building Server">https://hardenedbsd.org/article/admin/2015-11-22/new-package-building-server</a></td></tr><tr><td><a href="https://github.com/HardenedBSD/secadm" title="https://github.com/HardenedBSD/secadm">secadm</a></td><td>
- URL: <a href="https://github.com/HardenedBSD/secadm" title="secadm">https://github.com/HardenedBSD/secadm</a></td></tr><tr><td><a href="https://github.com/HardenedBSD/hardenedBSD-playground/tree/hardened/experimental/master-i915" title="https://github.com/HardenedBSD/hardenedBSD-playground/tree/hardened/experimental/master-i915">HardenedBSD Haswell Support</a></td><td>
- URL: <a href="https://github.com/HardenedBSD/hardenedBSD-playground/tree/hardened/experimental/master-i915" title="HardenedBSD Haswell Support">https://github.com/HardenedBSD/hardenedBSD-playground/tree/hardened/experimental/master-i915</a></td></tr><tr><td><a href="http://jenkins.hardenedbsd.org/builds/HardenedBSD-CURRENT-i915kms-amd64-LATEST/" title="http://jenkins.hardenedbsd.org/builds/HardenedBSD-CURRENT-i915kms-amd64-LATEST/">Nightly Builds for HardenedBSD Haswell Support</a></td><td>
- URL: <a href="http://jenkins.hardenedbsd.org/builds/HardenedBSD-CURRENT-i915kms-amd64-LATEST/" title="Nightly Builds for HardenedBSD Haswell Support">http://jenkins.hardenedbsd.org/builds/HardenedBSD-CURRENT-i915kms-amd64-LATEST/</a></td></tr></table><p>
- Contact:
- Shawn
- Webb
- &lt;<a href="mailto:shawn.webb@hardenedbsd.org">shawn.webb@hardenedbsd.org</a>&gt;
- <br />
- Contact:
- Oliver
- Pinter
- &lt;<a href="mailto:oliver.pinter@hardenedbsd.org">oliver.pinter@hardenedbsd.org</a>&gt;
- </p>
- <p>HardenedBSD has been hard at work improving the performance
- and stability of our security enhancements. Security flags
- are now per-thread instead of per-process, removing some
- locking overhead. ASLR for mmap(MAP_32BIT) requests has been
- refactored, but lib32 is now disabled by default.</p>
-
- <p>We have developed a new binary update utility,
- <tt>hbsd-update</tt>, akin to <tt>freebsd-update</tt>. In
- addition to normal OS installs, it can also update jails and
- ZFS Boot Environments (ZFS BEs). Updates are signed using
- X.509 certificates.</p>
-
- <p><tt>secadm</tt> 0.3-beta has landed. It has been rewritten
- from scratch to be more efficient. As part of the rewrite,
- the rule syntax has changed and users must update their
- rulesets as described in the README.</p>
-
- <p>Thanks to generous donations of a server from G2, Inc and
- hosting from Automated Tendencies, we can now do full
- package builds in just 35 hours, down from 75 hours.
- This machine will also provide weekly binary updates for
- the kernel and base system.</p>
-
- <p>Owing partly to the needs of the developers, we have
- an experimental branch that includes the work Jean-Sébastien Pédron has
- under way for Haswell graphics support, on top of FreeBSD
- 11-current. Binary updates are also provided for this
- branch.</p>
-
- <p>Unfortunately, in order to focus our efforts on improving
- HardenedBSD, we have had to pull back from submitting our ASLR
- patches to FreeBSD. The past two years' efforts to address
- comments on the submission have taken their toll, and the
- effort is no longer sustainable. We are proud to be based on
- FreeBSD and believe that the whole community could benefit from
- the security technologies we are developing. We hope that
- someone else will be able to step forward and finish off the
- task of integrating ASLR into FreeBSD.</p>
- <p>This project was sponsored by Automated Tendencies, G2, Inc, and SoldierX.</p><hr /><h2><a name="NanoBSD-Modernization" href="#NanoBSD-Modernization" id="NanoBSD-Modernization">NanoBSD Modernization</a></h2><p>
- Contact:
- Warner
- Losh
- &lt;<a href="mailto:imp@FreeBSD.org">imp@FreeBSD.org</a>&gt;
- </p>
- <p>This quarter's NanoBSD updates target three main areas. First,
- building a NanoBSD image required root privileges. Second,
- building for embedded platforms required detailed knowledge of
- the format required to boot. Third, the exact image sizes
- needed to be known to produce an image.</p>
-
- <p>When NanoBSD was written, FreeBSD's build system required root
- privileges for the install step and onward. NanoBSD added to
- this by creating a <tt>md(4)</tt> device in which to construct the
- image. Some configurations of NanoBSD added further to this
- by creating a chroot in which to cleanly build packages.
- NanoBSD solves the first problem using the new
- <tt>NO_ROOT</tt> build option to create a meta file. NanoBSD
- also augments this record as files are created and removed.
- The meta file is then fed into <tt>makefs(8)</tt> to create a
- UFS image with the proper permissions. The UFS image, and
- sometimes a DOS FAT partition, are then passed to
- <tt>mkimg(1)</tt> to create the final SD image. The
- <tt>mtree</tt> manipulation has been written as a separate
- script to allow it to move into the base system where it could
- assist with other build orchestration tools (though the move
- has not happened yet).</p>
-
- <p>The detailed knowledge of how to build each embedded image
- (as well as some of the base images for qemu) has always been
- hard to enshrine. Crochet puts this knowledge into its
- builds. The FreeBSD release system puts it into its system.
- NanoBSD, prior to the current work, provided no way to access
- its knowledge of how to build images. The current state of
- this project allows the user to set a simple image type and
- have NanoBSD deal with all of the details needed to create
- that image type. This includes using the u-boot ports and
- installing the right files into a FAT partition so that FreeBSD
- can boot with <tt>ubldr(8)</tt>, creating the right
- <tt>boot1.elf</tt> file for powerpc64 qemu booting, or the
- more familiar (though needlessly complicated) x86 setup.
- Previous versions of NanoBSD required too much specialized
- knowledge from the user. This work aims to concentrate the
- knowledge into a set of simple scripts for any build
- orchestration system to use.</p>
-
- <p>Finally, NanoBSD images in the past have needed very
- specific knowledge of the target device. Part of this is a
- legacy of the BIOS state-of-the-art a decade ago, which
- required very careful matching of the image to the actual
- device in the deployed system. Although relevant at the time,
- such systems are now vanishingly rare. Support for them will
- be phased out (though given the flexibility of NanoBSD, it can
- be moved to the few remaining examples in the tree and also
- partially covered by the generic image scripts). Today, the
- typical use case is to create an SD or microSD card image, and
- have the image resize itself on boot. NanoBSD now supports
- that workflow.</p>
-
- <p>In addition to these items, a number of minor improvements
- have been made:</p>
-
- <ul>
- <li>Support for <tt>CPUTYPE</tt>-specialized builds. This
- includes both NanoBSD support as well as important bug fixes
- in the base system.</li>
-
- <li>Support for marking MBR partitions as active.</li>
-
- <li>Support for more partition types.</li>
- </ul>
- <h3>Open tasks:</h3><ol><li>
- <p><tt>mkimg(8)</tt> needs to be augmented to create images
- for the i.MX6 and Allwinner (and others) SoCs. These SoCs
- require a boot image to be written after the MBR, but before
- the first partition starts.</p>
- </li><li>
- <p>The chroot functionality of some NanoBSD configurations
- has not yet been migrated for non-privileged builds.</p>
- </li><li>
- <p>The functionality to manipulate <tt>mtree(8)</tt> files
- should be moved into the base system for use by other build
- orchestration tools.</p>
- </li><li>
- <p>The script to create a bootable image from one or more
- trees of files, as well as some creation of those trees,
- should be moved into the base system for use with other
- build orchestration tools.</p>
- </li><li>
- <p>The <tt>growfs</tt> functionality works great for single
- images growing to the whole disk. However, NanoBSD would
- prefer that the boot FS/partition grow to approximately 1/2
- the size of the media and another identical (or close)
- partition be created for the ping-ponging upgrades that
- NanoBSD is setup for. This needs to be implemented in the
- <tt>growfs</tt> <tt>rc.d(8)</tt> script.</p>
- </li></ol><hr /><h2><a name="relaunchd" href="#relaunchd" id="relaunchd">relaunchd</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="https://github.com/mheily/relaunchd" title="https://github.com/mheily/relaunchd">Development tree on GitHub</a></td><td>
- URL: <a href="https://github.com/mheily/relaunchd" title="Development tree on GitHub">https://github.com/mheily/relaunchd</a></td></tr></table><p>
- Contact:
- Mark
- Heily
- &lt;<a href="mailto:mark@heily.com">mark@heily.com</a>&gt;
- </p>
- <p>The <tt>relaunchd</tt> project provides a service
- management daemon that is similar to the original
- <a href="https://en.wikipedia.org/wiki/Launchd" shape="rect">launchd</a>
- introduced in Apple OS X.</p>
-
- <p>It is not limited to the original features of
- <tt>launchd</tt>, however: interesting work is being done to
- add support for launching programs in jails, passing socket
- descriptors from the host to a jail, and launching programs
- within a preconfigured <tt>capsicum(4)</tt> sandbox.
- Additionally, <tt>relaunchd</tt> uses UCL for its
- configuration files, so jobs can be defined in JSON or other
- formats supported by UCL.</p>
-
- <p>While there is still work to be done, most of the important
- features of the original <tt>launchd</tt> have been
- implemented, and <tt>relaunchd</tt> has been made available in
- the FreeBSD Ports Collection. It should still be considered
- experimental and not ready for production use, but everyone is
- welcome to try it, report issues, and contribute code or ideas
- for improvement.</p>
- <h3>Open tasks:</h3><ol><li>
- <p>Add support for restarting jobs if they crash.</p>
- </li><li>
- <p>Implement the <tt>cron(8)</tt> emulation feature.</p>
- </li><li>
- <p>Add support for monitoring files and directories for
- changes and launching jobs when changes are detected.</p>
- </li><li>
- <p>Finish things that are incomplete, such as support for
- jails and passing open socket descriptors to child
- processes.</p>
- </li><li>
- <p>Improve the documentation and provide more examples of
- usage.</p>
- </li></ol><hr /><h2><a name="System-Initialization-and-Service-Management" href="#System-Initialization-and-Service-Management" id="System-Initialization-and-Service-Management">System Initialization and Service Management</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.daemonspawn.org/2016/01/a-comparison-of-alternatives-to-init8.html" title="http://www.daemonspawn.org/2016/01/a-comparison-of-alternatives-to-init8.html">A Comparison of init(8) and rc(8) Replacements</a></td><td>
- URL: <a href="http://www.daemonspawn.org/2016/01/a-comparison-of-alternatives-to-init8.html" title="A Comparison of init(8) and rc(8) Replacements">http://www.daemonspawn.org/2016/01/a-comparison-of-alternatives-to-init8.html</a></td></tr></table><p>
- Contact:
- Mark
- Heily
- &lt;<a href="mailto:mark@heily.com">mark@heily.com</a>&gt;
- <br />
- Contact:
- Jonathan
- de Boyne Pollard
- &lt;<a href="mailto:J.deBoynePollard-newsgroups@NTLWorld.COM">J.deBoynePollard-newsgroups@NTLWorld.COM</a>&gt;
- <br />
- Contact:
- Jordan
- Hubbard
- &lt;<a href="mailto:jkh@FreeBSD.org">jkh@FreeBSD.org</a>&gt;
- </p>
- <p>There are three active projects to provide an alternative
- to the traditional <tt>init(8)</tt> and <tt>rc(8)</tt>
- subsystems that manage the boot process and system services.
- There are a number of reasons driving the desire for change,
- including:</p>
-
- <ul>
- <li>Faster boot times, made possible by launching services
- in parallel</li>
-
- <li>Greater reliability, by ensuring that services are
- automatically restarted if they terminate unexpectedly</li>
-
- <li>Simplified dependency management, using socket
- activation and similar techniques</li>
-
- <li>The ability to launch services "on demand",
- and have them self-terminate when idle</li>
-
- <li>Improved security, by removing the need to start common
- daemons as the root user</li>
- </ul>
-
- <p> Two of the projects, <tt>launchd</tt> and
- <tt>relaunchd</tt>, are based on the <tt>launchd(8)</tt> API
- introduced by Apple in Mac OS X. The NextBSD project has
- ported the original Apple source code by writing a Mach
- compatibility layer that allows <tt>launchd</tt> to run on
- FreeBSD. The <tt>relaunchd</tt> project started from scratch
- with the goal of creating a more modular, lightweight, and
- portable implementation of the <tt>launchd</tt> API. The
- third project, <tt>nosh</tt>, is a unique creation that
- borrows concepts from <tt>launchd</tt>, <tt>systemd</tt>, and
- several other Unix operating systems.</p>
-
- <p>While the FreeBSD Project has not made a decision to replace the
- current <tt>init(8)</tt> and <tt>rc(8)</tt> subsystems, the
- existence and active development of alternatives will continue
- to drive innovation in this space.</p>
-
- <p>Jordan Hubbard is the contact point for the NextBSD
- <tt>launchd</tt>, Jonathan de Boyne Pollard is the contact
- point for <tt>nosh</tt>, and Mark Heily is the contact point
- for <tt>relaunchd</tt>.</p>
- <hr /><h2><a name="The-FreeBSD-Foundation" href="#The-FreeBSD-Foundation" id="The-FreeBSD-Foundation">The FreeBSD Foundation</a></h2><table title="Links" style="white-space: nowrap;"><tr><td>Links</td></tr><tr><td><a href="http://www.FreeBSDFoundation.org/" title="http://www.FreeBSDFoundation.org/">Foundation Website</a></td><td>
- URL: <a href="http://www.FreeBSDFoundation.org/" title="Foundation Website">http://www.FreeBSDFoundation.org/</a></td></tr><tr><td><a href="http://FreeBSDJournal.com/" title="http://FreeBSDJournal.com/">FreeBSD Journal</a></td><td>
- URL: <a href="http://FreeBSDJournal.com/" title="FreeBSD Journal">http://FreeBSDJournal.com/</a></td></tr></table><p>
- Contact:
- Deb
- Goodkin
- &lt;<a href="mailto:deb@FreeBSDFoundation.org">deb@FreeBSDFoundation.org</a>&gt;
- </p>
- <p>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 development projects, conferences and developer
- summits, and provide travel grants to FreeBSD developers. The
- Foundation purchases hardware to improve and maintain FreeBSD
- infrastructure and publishes FreeBSD white papers and marketing
- material to promote, educate, and advocate for the FreeBSD
- Project. The Foundation also represents the FreeBSD Project in
- executing contracts, license agreements, and other legal
- arrangements that require a recognized legal entity.</p>
-
- <p>Here are some highlights of what we did to help FreeBSD
- last quarter:</p>
-
- <p>On the advocacy front, the Foundation attended and
- sponsored EuroBSDcon, which took place Oct 1-4
- (<a href="https://2015.eurobsdcon.org/" shape="rect">https://2015.eurobsdcon.org/</a>)
- in Stockholm, Sweden. Two days prior, during the developer
- summit, Deb Goodkin ran a session on Recruiting to FreeBSD. The
- Foundation was also very active during the event itself; in
- addition to Deb, we had Dru Lavigne, Kirk McKusick, Erwin Lansing,
- Ed Maste, Hiroki Sato, Benedict Reuschling, and Edward Tomasz Napiera&#322;a attend the
- conference. Deb and Ed gave a presentation on how the
- Foundation supports a BSD project. Kirk gave a presentation
- on "a Brief History of the BSD Fast File System,"
- and he taught the two-day tutorial "Introduction to the
- FreeBSD Open-Source Operating System."</p>
-
- <p>Deb then attended the 2015 Grace Hopper Conference that was
- held in Houston, TX, October 14-16. The conference is for
- women in computing and most of the attendees were female
- computer science majors, female software developers, and
- college professors. The Foundation was proud to be a Silver
- Sponsor. The conference was very successful for us. Our
- presence allowed us to raise awareness of the Project, help
- recruit more women, and get more professors to include FreeBSD in
- their curriculum.</p>
-
- <p>George V. Neville-Neil traveled to Bangkok, Thailand to present talks on
- DTrace, FreeBSD, and teaching with DTrace. The talks were
- presented at Chulalongkorn University, which is the largest
- University in Thailand with the largest engineering school.
- The first talk was the practitioner's introduction to DTrace
- in which the technology, history and usage is explained
- without diving into all the kernel subsystems. The second was
- the sales pitch for teaching with Dtrace and with FreeBSD. The
- pitch was well received and there were some very good points
- made by the audience. The facts that the course materials are
- both open source and hosted on github were also well
- received.</p>
-
- <p>Kirk McKusick completed a 10-hour tutorial about FreeBSD for
- Pearson Education in their "Live Lesson" program.
- In particular, there is a great free snippet from that course
- comparing FreeBSD against Linux here:
- <a href="http://youtu.be/dTpqALCwQ1Y?a" shape="rect">http://youtu.be/dTpqALCwQ1Y?a</a>.
- Find out more about the whole session at:
- <a href="http://click.linksynergy.com/fs-bin/click?id=NZS3W7D*uS0&amp;subid=&amp;offerid=163217.1&amp;type=10&amp;tmpid=3559&amp;RD_PARM1=http%253A%252F%252Fwww.informit.com%252Fstore%252Fintroduction-to-the-FreeBSD-open-source-operating-system-9780134305868" shape="rect">http://click.linksynergy.com/fs-bin/click?id=NZS3W7D*uS0&amp;subid=&amp;offerid=163217.1&amp;type=10&amp;tmpid=3559&amp;RD_PARM1=http%253A%252F%252Fwww.informit.com%252Fstore%252Fintroduction-to-the-freebsd-open-source-operating-system-9780134305868</a>.</p>
-
- <p>Anne Dickison resumed the Faces of FreeBSD series with
- interviews featuring Michael Dexter and Erin Clark. She also
- continued to produce and distribute FreeBSD materials for
- conferences, as well as advocating for FreeBSD over our social
- channels.</p>
-
- <p>George V. Neville-Neil headed up the latest Silicon Valley Vendor and
- Developer Summit, November 2-3, at the NetApp campus in
- Sunnyvale, California. Topics of discussion ranged over new
- developments in persistent memory, the use of FreeBSD by a
- company that builds rackscale systems, developments in our
- compiler and tool suite, as well as others. Additional
- Foundation Board and Staff attending the summit included: Deb
- Goodkin, Glen Barber, Justin T. Gibbs, Kirk McKusick, Ed Maste, and
- Hiroki Sato. The complete schedule, and some of the slides, are
- available on the FreeBSD Wiki
- <a href="https://wiki.FreeBSD.org/201511VendorDevSummit" shape="rect">https://wiki.freebsd.org/201511VendorDevSummit</a>.</p>
-
- <p>Notes from the always lively "Have/Need/Want
- session" are available at
- <a href="https://wiki.FreeBSD.org/201511VendorDevSummit/HaveNeedWant" shape="rect">https://wiki.freebsd.org/201511VendorDevSummit/HaveNeedWant</a>.</p>
-
- <p>While in the Bay Area, some Foundation members visited
- commercial users of FreeBSD to help understand their needs,
- update them on the work the Foundation is doing, and
- facilitate collaboration between them and the Project.</p>
-
- <p>We were a sponsor of the 2015 OpenZFS Developer
- Summit, which took place October 19-20, in San Francisco, CA.
- Justin T. Gibbs and Kirk McKusick attended the conference.</p>
-
- <p>Justin T. Gibbs continued his semester long class teaching
- Intro to Computer Science using FreeBSD at a middle
- school.</p>
-
- <p>Ed Maste, Edward Tomasz Napiera&#322;a, and Konstantin Belousov continue to make
- progress on Foundation funded development projects. More
- specifically:</p>
-
- <ul>
- <li>Ed Worked on a number of items relating to the
- tool chain: LLD linker, ELF Tool Chain components, and LLDB
- debugger, and tested, integrated, and merged outstanding
- UEFI work.</li>
-
- <li>Edward finished work on the reroot project as well as
- spending some time on a certificate-transparency port. He
- also implemented a prototype to support disk IO limit in
- RCTL.</li>
-
- <li>Konstantin rewrote the out of memory killer logic, which,
- in particular, fixed FreeBSD operation on systems without swap,
- especially systems with very little memory. The latter are
- becoming more and more common with the popularity of embedded
- ARM platforms where FreeBSD runs, but it also affects large
- systems which are usually configured without swap. He also
- finalized and committed the shared page support for the
- ARMv7 and ARMv8 systems. This allows for a non-executable
- stack on ARMv7, and a much faster userspace
- <tt>gettimeofday(2)</tt> for both, similar to x86.</li>
- </ul>
-
- <p>Ed Maste presented a FreeBSD/arm64 talk and a hands-on
- demo at ARM Techcon, which took place November 10-12, 2015, in
- Santa Clara, CA.</p>
-
- <p>We continued publishing our monthly newsletters and
- acquiring new company testimonials about using FreeBSD, including
- from Verisign and Nginx.</p>
-
- <p>Anne Dickison, Dru Lavigne, and Glen Barber represented the
- Foundation at USENIX LISA '15, which took place November 3-8,
- in Washington D.C.. The Foundation had a booth in the Expo
- Hall and participated in a BoF. Besides connecting with
- current community members, we spoke with attendees who were
- interested in getting involved with the Project and helped
- set them on the correct path. We also took the opportunity to
- remind those who had not used FreeBSD in a while what they were
- missing. Glen also attended the USENIX Release Engineering
- Summit, which was co-located with LISA '15.</p>
-
- <p>We published the Sept/Oct and Nov/Dec issues of the
- FreeBSD Journal.</p>
-
- <p>George V. Neville-Neil and Robert Watson announced the release of
- their TeachBSD initiative:
- <a href="http://teachbsd.org/" shape="rect">http://teachbsd.org/</a>.
- TeachBSD offers a set of open source reusable course materials designed to
- allow others to teach both university students and software
- practitioners FreeBSD operating system fundamentals. The
- Foundation is proud to have partly sponsored their efforts to
- teach the initial graduate level course on operating systems
- with tracing at the University of Cambridge.</p>
-
- <p>Deb Goodkin invited a representative from the
- Outreachy program to talk at the Ottawa FreeBSD Developer Summit
- about the program and how we can get involved.</p>
-
- <p>Deb also started discussions with CS professors from
- the University of Colorado, Boulder to offer some Intro to
- FreeBSD workshops.</p>
-
- <p>Glen Barber continued wearing many hats to support to the
- Project. For Release Engineering:
- <ul>
- <li>Added support for building <tt>BANANAPI</tt>,
- <tt>CUBIEBOARD</tt>, and <tt>CUBIEBOARD2</tt> arm
- images.</li>
-
- <li>Deprecated the use of MD5 checksums for verifying
- installation media downloaded from the FreeBSD Project
- mirrors.</li>
-
- <li>Various miscellaneous updates and fixes to release
- build code.</li>
-
- <li>Continued providing regular development snapshot
- builds.</li>
- </ul>
- Under Systems Administration:
- <ul>
- <li>Assisted the Admins team with migrating various
- services to two new colocation facilities near Sunnyvale,
- generously provided by RootBSD and LimeLight
- Networks.</li>
-
- <li>Moved email services for the Foundation to a new
- server.</li>
- </ul>
- </p>
-
- <p>Ed Maste attended the Reproducible Builds World
- Summit, which took place in Athens, Greece, December 1-3,
- 2015.</p>
-
- <p>We wrapped up our 2015 fundraising efforts with our
- End-of-Year fundraising campaign by participating in
- #GivingTuesday, and continuing with weekly email and social
- media requests for support of the Foundation. Final
- fundraising numbers will be available in Q1 2016.</p>
- <hr /><a href="../news.html">News Home</a> | <a href="status.html">Status Home</a></div>
- <br class="clearboth" />
- </div>
- <div id="footer">
- <span><a href="../../search/index-site.html">Site Map</a> |
- <a href="../../copyright/">Legal Notices</a> | © 1995&#8211;2021 The FreeBSD Project.
- All rights reserved.</span>
- <br />
- </div>
- </div>
- </div>
- </body>
-</html>