FreeBSD Quarterly Status Report - Fourth Quarter 2014

From: Benjamin Kaduk <bjk_at_freebsd.org>
Date: Mon, 19 Jan 2015 23:43:47 -0500 (EST)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

FreeBSD Project Quarterly Status Report: October - December 2014

   This report covers FreeBSD-related projects between October and
   December 2014. This is the last of four reports planned for 2014.

   The fourth quarter of 2014 included a number of significant
   improvements to the FreeBSD system. In particular, compatibility with
   other systems was enhanced. This included significant improvements to
   the Linux compatibility layer, used to run Linux binaries on FreeBSD,
   and the port of WINE, used to run Windows applications. Hypervisor
   support improved, with FreeBSD gaining the ability to run as domain 0
   on Xen's new high-performance PVH mode, bhyve gaining AMD support, and
   new tools for creating FreeBSD VM images arriving.

   This quarter was also an active time for the toolchain, with numerous
   improvements to the compiler, debugger, and other components, including
   initial support for C++14, which should be complete by FreeBSD 10.2.

   Thanks to all the reporters for the excellent work!

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

FreeBSD Team Reports

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

Projects

     * bhyve
     * Clang, llvm, and lldb Updated to 3.5.0
     * External Toolchain
     * FreeBSD on Google Cloud
     * FreeBSD on the Acer C720 Chromebook
     * Git Integration
     * Jenkins Continuous Integration for FreeBSD
     * Migration to ELF Tool Chain Tools
     * pkg(8)

Kernel

     * FreeBSD Xen
     * Linux Emulation Layer, the Linuxulator
     * PCI SR-IOV Infrastructure
     * Process Management
     * Secure Boot
     * Timer Function Support for Linuxulator
     * Updating OpenCrypto

Architectures

     * FreeBSD on POWER8
     * FreeBSD/arm64

Userland Programs

     * libxo: Generate Text, XML, JSON, and HTML Output
     * mandoc(1) Support

Ports

     * GNOME on FreeBSD
     * KDE on FreeBSD
     * Linux Emulation Ports
     * The Graphics Stack on FreeBSD
     * Wine/FreeBSD
     * Xfce

Documentation

     * More Michael Lucas Books
     * New Translators Mailing List

Miscellaneous

     * Creating Vagrant Images with Packer
     * FreeBSD Forum Software Migration
     * The FreeBSD Foundation
     __________________________________________________________________

FreeBSD Release Engineering Team

   URL: http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/

   Contact: FreeBSD Release Engineering Team <re_at_FreeBSD.org>

   The FreeBSD Release Engineering Team is responsible for setting and
   publishing release schedules for official project releases of FreeBSD,
   announcing code freezes and maintaining the respective branches, among
   other things.

   The FreeBSD 10.1-RELEASE cycle completed on November 14th, marking the
   second official release point from the stable/10 branch, just short of
   three weeks later than the original schedule anticipated.

   Work to produce virtual machine images for platforms not currently
   supported has continued, with focus aimed primarily at Amazon EC2,
   Google Compute Engine, and Openstack.

   With huge thanks to Ian Lepore and Warner Losh, new ports exist for
   FreeBSD/arm where u-boot is required. Work has been in progress since
   late December to migrate the existing FreeBSD/arm release build tools
   to utilize the new ports.

   This project is sponsored by The FreeBSD Foundation .
     __________________________________________________________________

Ports Collection

   URL: http://www.FreeBSD.org/ports/
   URL: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/
   URL: http://portsmon.freebsd.org/index.html
   URL: http://portscout.freebsd.org/
   URL: http://www.freebsd.org/portmgr/index.html
   URL: http://blogs.freebsdish.org/portmgr/
   URL: http://www.twitter.com/freebsd_portmgr/
   URL: http://www.facebook.com/portmgr
   URL: http://plus.google.com/communities/108335846196454338383

   Contact: Frederic Culot <portmgr-secretary_at_FreeBSD.org>
   Contact: Port Management Team <portmgr_at_FreeBSD.org>

   As of the end of Q4 the ports tree holds more than 24,000 ports, and
   the PR count is just over 1,400. As during the previous quarter the
   tree saw a sustained activity with almost 6,000 commits and more than
   1,600 ports PRs closed!

   In Q4, five new developers were granted a ports commit bit (gordon_at_,
   jmg_at_, jmmv_at_, bofh_at_, truckman_at_) and six were taken in for safekeeping
   (sylvio_at_, pclin_at_, flz_at_, jsa_at_, anders_at_, motoyuki_at_).

   On the management side, miwi_at_ decided to step down from his portmgr
   duties in November. No other changes were made to the team during Q4.

   This quarter also saw the release of the fourth quarterly branch,
   namely 2014Q4.

   On the QA side, 39 exp-runs were performed to validate sensitive
   updates or cleanups.

Open tasks:

    1. A tremendous work was done on the PR front in Q4 and we would be
       very pleased to see committers dedicate themselves to closing as
       many as possible in 2015 as well!
    2. 2014 is the year that saw the highest number of commits in all of
       our ports tree's history! As for the PR front and to keep our
       beloved tree in good shape, we would love to see the same
       commitment from our developers next year!
     __________________________________________________________________

The FreeBSD Core Team

   Contact: FreeBSD Core Team <core_at_FreeBSD.org>

   The FreeBSD Core Team constitutes the project's "Board of Directors",
   responsible for deciding the project's overall goals and direction as
   well as managing specific areas of the FreeBSD project landscape.

   During the fourth quarter of 2014, the FreeBSD Core team saw the
   culmination of a long-running project to rebuild the FreeBSD Forums.
   The chosen solution was to license XenForo; core would like to thank
   the FreeBSD Foundation for paying the licensing costs of this software.

   Much discussion ensued concerning the "New Support Model" following
   Core's meeting at EuroBSDCon in September. It was recognised that
   trying to change the model immediately before 10.1-RELEASE was far too
   late, and the change will be targeted at 11.0-RELEASE.

   In order to ensure that 10.1-RELEASE shipped with support for
   up-to-date X Window Systems and KDE4, core approved the switch to 'new
   Xorg' as the default in time for building the packages for that
   release.

   Git was officially promoted from beta to an officially supported
   version control system. Git is available as a read-only resource for
   downstream consumers and contains an exported copy from SVN, the
   primary and only read-write repository. The FreeBSD git repositories
   (exported from the master SVN version control) will shortly be
   available at https://git.freebsd.org/, and core has been active in
   ensuring that there is a sufficient body of Git administrators
   available with access to appropriate documentation in order to maintain
   a good git service.

   Core mediated in disputes between a number of committers over some
   updates to system sources, and fielded complaints about code quality of
   some other work in critical areas. While such disagreements will
   occasionally occur, core is promoting the routine use of the
   Phabricator service in order to review work before committal. Catching
   problems early is in the project's best interests, and discussion of
   changes in an open review context should minimize confrontational
   demands for immediate back-out of changes.

   Core is working on a charter for a proposed new QA team, to encompass
   members of the Release Engineering and Security teams, as well as
   committers with interests in standards compliance. It is envisioned
   that the QA team will take responsibility for merging code from HEAD
   into the STABLE branches, run integration testing against those updates
   and handle merging patches and bug-fixes submitted to the FreeBSD
   project from third parties.

   During this quarter, core issued two new commit bits, and also took two
   commit bits into safe-keeping.
     __________________________________________________________________

bhyve

   URL: http://www.bhyve.org

   Contact: Peter Grehan <grehan_at_FreeBSD.org>
   Contact: Neel Natu <neel_at_FreeBSD.org>
   Contact: John Baldwin <jhb_at_FreeBSD.org>
   Contact: Tycho Nightingale <tychon_at_FreeBSD.org>
   Contact: Allan Jude <freebsd_at_allanjude.com>

   bhyve is a hypervisor that runs on the FreeBSD/amd64 platform. At
   present, it runs FreeBSD (8.x or later), Linux i386/x64, OpenBSD
   i386/amd64, and NetBSD/amd64 guests. Current development is focused on
   enabling additional guest operating systems and implementing features
   found in other hypervisors.

   Support for AMD processors was committed to -CURRENT in October 2014.
   This has also been merged to 10-STABLE and will be included in the 10.2
   release.

   A bhyve status update presentation was given at the FreeBSD Vendor
   Summit in Nov 2014. The slides are available at
   http://people.freebsd.org/~neel/bhyve/bhyve_update_vendor_summit_2014.pdf .

   A number of improvements have been made to bhyve this quarter:
     * OpenBSD/i386 guests are now able to boot with multiple vcpus.
     * NetBSD/amd64 guests are now fully supported.
     * Improvements to the AHCI emulation to be more resilient under heavy
       load.
     * Various improvements to PIC emulation to be able to boot legacy
       guests.
     * A fully featured RTC device emulation that allows date/time changes
       by the guest and supports periodic and alarm interrupts.
     * Consolidate all timer emulations in vmm.ko. This enables the use of
       a single clocksource for all timer emulations.
     * Allow tracing of every exception incurred by a guest. This is
       useful when debugging guest double and triple faults.
     * Emulate platform-specific MSRs accessed by recent Linux guests.
     * Various bug fixes to grub-bhyve to boot OpenBSD/i386 and Centos 4.x
       guests.
     * grub-bhyve is now able to connect to an nmdm(4) console using the
       --cons-dev option.

Open tasks:

    1. Improve documentation.
    2. bhyveucl is a script for starting bhyve instances based on a libUCL
       config file. More information at
       https://github.com/allanjude/bhyveucl .
    3. CSM BIOS boot support for non UEFI-aware guests.
    4. Add support for virtio-scsi.
    5. Improve virtio-net, add offload features, support multiple queues.
    6. Implement Intel 82580 and e1000 NIC emulation.
    7. Netmap support.
    8. Flexible networking backend: wanproxy, vhost-net.
    9. Move to a single process model, instead of bhyveload + bhyve.
   10. Support running bhyve as non-root.
   11. Add filters for popular VM file formats (VMDK, VHD, QCOW2).
   12. Implement an abstraction layer for video (no X11 or SDL in base
       system).
   13. Support for VNC as a video output.
   14. Suspend/resume support.
   15. Live Migration.
   16. Nested VT-x support (bhyve in bhyve).
   17. Support for other architectures (ARM, MIPS, PPC).
     __________________________________________________________________

Clang, llvm, and lldb Updated to 3.5.0

   URL: http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html
   URL: http://llvm.org/releases/3.5.0/tools/clang/docs/ReleaseNotes.html

   Contact: Dimitry Andric <dim_at_FreeBSD.org>
   Contact: Ed Maste <emaste_at_FreeBSD.org>
   Contact: Roman Divacky <rdivacky_at_FreeBSD.org>

   Just before the end of the year, we updated clang, llvm, and lldb in
   the base system to 3.5.0 release. These all contain numerous
   improvements. Please see the linked release notes for more detailed
   information.

   This is the first release that requires C++11 support to build. At this
   point, FreeBSD 10.0 and later provide that support, at least on x86.

   In the near future, more components from llvm.org will be updated in
   base, with libc++ and libcompiler-rt most likely being the first to be
   updated.

   Thanks to Ed Maste, Roman Divacky, Andrew Turner, Justin Hibbits, and
   Antoine Brodin for their invaluable help with this import.

Open tasks:

    1. While most ports that were impacted by this update have already
       been fixed, there are still a few that do not work with the clang
       3.5.0 update.
       In most cases, this is due to relatively simple issues, such as new
       warnings, or slightly stricter error checking (primarily for C++
       programs). Fixing those issues should not take too much work.
    2. There are still some open issues with the ARM, PowerPC, and Sparc64
       architectures, and any help in this area is very much appreciated.
     __________________________________________________________________

External Toolchain

   URL: https://wiki.freebsd.org/ExternalToolchain

   Contact: Baptiste Daroussin <bapt_at_FreeBSD.org>
   Contact: Warner Losh <imp_at_FreeBSD.org>
   Contact: Brooks Davis <brooks_at_FreeBSD.org>

   The main goal of the external toolchain project is to be able to build
   world and kernel with a non-default toolchain. It can be helpful to:
     * Prepare a migration to a newer version of toolchain components.
     * Port FreeBSD to a new architecture
     * Upgrade from a FreeBSD that ships with GCC 4.2 to a version that
       ships with clang 3.5+ (which needs a more modern toolchain than GCC
       4.2 to bootstrap).

   The initial external toolchain work only supported clang. It has been
   extended to support recent GCC (4.9.1 has been tested) and recent
   binutils (2.24 and 2.25).

   A large number of fixes have been committed to HEAD to support
   incompatible behaviour changes between ld(1) from binutils 2.17.50 (the
   version in base) and binutils 2.24+.

   A large number of warnings have been deactivated when building the
   kernel to make sure it is possible to build the kernel with recent GCC
   (first 4.6 and then 4.9.1)

   The build system has been changed to build libc++ as the C++ standard
   library implementation when a recent enough GCC (4.6+) is used to build
   world.

   To simplify using an external toolchain, the following pre-seeded
   configurations have been added to the ports tree:
     * amd64-xtoolchain-gcc
     * powerpc64-xtoolchain-gcc
     * sparc64-xtoolchain-gcc

   Those packages will depend on special versions of GCC (minimalistic
   cross-built ready GCC) and on binutils. To use them, run: make
   CROSS_TOOLCHAIN=powerpc64-gcc TARGET=powerpc TARGET_ARCH=powerpc64

   As a result of this effort, it is possible to successfully build and
   run a kernel and world built with GCC 4.9.1 and binutils 2.24 on
   sparc64, amd64 (with minor tweaks), powerpc and powerpc64.

Open tasks:

    1. Patch GCC 4.9 to support FreeBSD mips, arm and aarch64 and submit
       the patches to upstream.
    2. Adapt and upstream the aarch64 patches for binutils 2.25.
    3. Add more pre-seeded configurations.
     __________________________________________________________________

FreeBSD on Google Cloud

   URL: https://github.com/swills/FreeBSD-gcloud
   URL: https://plus.google.com/112202779615695172291/posts/eYajb8JKerY

   Contact: Steve Wills <swills_at_FreeBSD.org>

   Google Cloud is a cloud computing platform that allows users to run
   hosted services and servers in a cloud maintained by Google. The goal
   of this project is to provide an easy way to create and manage FreeBSD
   installations running on Google Cloud.

   The good news:

   FreeBSD 10.1 runs fine. You can create an image and start it up and
   login via standard ssh, via the gcloud command or via the web console
   (ssh in a web browser window). More details on how to do all this can
   be found in the links. Basically, you should be able to gcutil addimage
   freebsd-101-release-amd64-20150101032704
   gs://swills-test-bucket/FreeBSD-10.1-RELEASE-amd64-20150101032704.tar.gz

   Then spin up an image using gcloud compute instances create --zone
   us-central1-b --image freebsd-101-release-amd64-20150101032704
   --boot-disk-size 20GB gtest1

   These commands are part of the google-cloud-sdk port, which contains
   all the commands to interact with Google Cloud. There is also a
   google-daemon port which is used in running instances to create users
   and set them up and a google-startup-scripts port which handles running
   startup/shutdown scripts as specified in node metadata.

   Additionally, the firstboot-growfs port has been brought back so that
   new instances will grow their root filesystem. (Thanks to Colin
   Percival for having created that port initially.)

   There is also a firstboot-freebsd-update port which can be used to
   update a system on first boot but is currently disabled (see below).
   Similarly, the firstboot-pkgs port/scripts will install specified
   packages on first boot.

   Overall, Google Cloud Compute is quite nice; instances spin up in about
   60 seconds and it is very reasonably priced with automatic discounts
   for longer term usage. There is a $300 credit for first time users that
   also makes it free to try out. That credit covers quite a lot of time,
   and the instances are pretty fast, as well, even the ones without SSDs.

   The bad news:

   Google does not make sharing non-official images as easy as AWS, so you
   have to create your own using my public tar file. The tar file was
   created using the script in the links section. That script can be used
   to produce customized images, even though there are no official image
   (nor will there be any time soon).

   There are some issues running FreeBSD on Google Cloud, listed in the
   tasks section.

Open tasks:

    1. The 8 and 16 cpu instances seem to reboot randomly.
    2. Repeated UFS panics that Google folks have reported, but I do not
       think those are particular to Google Cloud. The panic message is
       "ffs_valloc dup alloc".
    3. Running freebsd-update causes the system to become unbootable, so
       updates do not work. (Reboots work fine otherwise.)
    4. There is no gcimagebundle command in the Ports Collection so you
       cannot easily create an image from a running machine.
    5. There are a few minor issue with the startup script that is
       supposed to regenerate ssh keys (for when you create an image from
       an existing system).
    6. 10.1 works, but 10.0 does not boot; other versions remain untested.
    7. The kern.vm_guest sysctl node does not detect that it is in a
       guest.
    8. The vtnet driver needs wq disabled on 16 cpu boxes, but it is just
       disabled everywhere for now since that is easier.
    9. There is work needed for the Google safe_format_and_mount command
       which formats and mounts newly attached disks, but this is just a
       nicety really.
   10. I need to look into irq affinity for vtnet.
   11. We need to support virtualized clocks; bryanv_at_ is working on this.
       In fact, all his ongoing work in the virtualization area would
       probably make things work better.
   12. It would be nice if there was the ability to disable the spinner
       before the loader, which clutters up the console log. The ability
       to disable it is in HEAD; hopefully it will be MFCd to 10-STABLE
       before 10.2.
     __________________________________________________________________

FreeBSD on the Acer C720 Chromebook

   URL: http://blog.grem.de/pages/c720.html

   Contact: Michael Gmelin <freebsd_at_grem.de>

   The Acer C720 Chromebook is a powerful but inexpensive laptop designed
   to run Google's Chrome OS. This project aims to bring FreeBSD to the
   C720, providing an easy way for people to experience FreeBSD on
   hardware which is widely available and inexpensive.

   As of this update, most system features work, including the keyboard,
   WiFi, sound, VESA graphics, touchpad, and USB. The battery life is a
   reasonable 5 to 6 hours (compare to the published 8.5 hour lifetime for
   Chrome OS.

Open tasks:

    1. Streamline patches and merge them into HEAD.
    2. Make suspend/resume work (depends on Haswell support).
     __________________________________________________________________

Git Integration

   URL: https://lists.freebsd.org/mailman/listinfo/freebsd-git
   URL: https://www.kernel.org/pub/software/scm/git/docs/git-svn.html
   URL: https://github.com/git/git/commit/83c9433e679635f8fbf8961081ea3581c93ca778
   URL: https://wiki.freebsd.org/GitWorkflow
   URL: https://github.com/freebsd/freebsd
   URL: https://bugs.freebsd.org/bugzilla

   Contact: Git discussion list <freebsd-git_at_FreeBSD.org>

   Several FreeBSD developers have expressed interest in improving the
   tools and documentation to facilitate the use of the Git source code
   management (SCM) system when working with FreeBSD code. Some highlights
   of the work in this area include the following:
     * At Alfred Perlstein's request, a new mailing list
       freebsd-git_at_FreeBSD.org was created for discussion of git use in
       the FreeBSD project.
     * Alfred Perlstein submitted a patch to git. This patch allows a
       developer to work on a source code tree in git and use git-svn to
       push changes from this tree directly to a Subversion repository and
       set Subversion properties. Before this patch, git-svn did not
       properly set Subversion properties. This is important for FreeBSD
       developers because the FreeBSD Subversion repo will block commits
       which do not properly set certain Subversion properties. The git
       project accepted this change in changeset 83c9433.
     * Alfred Perlstein updated the Git Workflow wiki document to include
       information for using git-svn to commit to the FreeBSD Subversion
       repository.
     * Bartek Rutkowski wrote a script which integrates Github and FreeBSD
       Bugzilla. When a user files a Github pull request against the
       FreeBSD source code tree on Github, this script will open a new PR
       in FreeBSD Bugzilla. This will allow users to contribute code and
       patches via Github pull requests, and have the request tracked by
       FreeBSD developers in Bugzilla. Github pull requests cannot
       currently be directly merged into the FreeBSD source tree on
       Github, because the main source code repository is currently
       Subversion. The FreeBSD source code tree on Github is a read-only
       mirror of the FreeBSD Subversion repository. Craig Rodrigues
       coordinated with Bartek Rutkowski and bugmeister_at_FreeBSD.org to
       move forward on this, and provide Bartek Rutkowski with enough
       access to Bugzilla to open PR's via a script.

Open tasks:

    1. The Github integration script is not deployed yet and is not active
       for all pull requests against the FreeBSD source tree on Github.
       Bartek Rutkowski and bugmeister_at_FreeBSD.org need to work out the
       final details for deploying this script into production. The script
       must be accessible via HTTP POST requests because it uses the
       Github REST API. Bartek Rutkowski and bugmeister_at_FreeBSD.org need
       to reach agreement on where this script lives, and do a security
       audit.
     __________________________________________________________________

Jenkins Continuous Integration for FreeBSD

   URL: https://jenkins.freebsd.org
   URL: http://jenkins-ci.org/content/freebsd-project-use-jenkins-os-testing
   URL: https://wiki.freebsd.org/201411DevAndVendorSummit?action=AttachFile&do=view&target=kyua_jenkins.pdf
   URL: https://issues.jenkins-ci.org/browse/JENKINS-21507
   URL: https://issues.jenkins-ci.org/browse/JENKINS-24521
   URL: https://github.com/rodrigc/kyua/wiki/Quickstart-Guide
   URL: http://www.freshports.org/textproc/igor/
   URL: https://jenkins.freebsd.org/job/FreeBSD_Doc-igor
   URL: https://jenkins.freebsd.org/job/FreeBSD_HEAD_sparc64/
   URL: https://lists.freebsd.org/pipermail/freebsd-testing/2014-November/000609.html
   URL: https://lists.freebsd.org/pipermail/freebsd-testing/2014-December/000697.html
   URL: https://lists.freebsd.org/pipermail/svn-src-all/2014-October/092212.html
   URL: http://lists.freebsd.org/pipermail/freebsd-testing/2015-January/000713. html
   URL: https://github.com/Homebrew/homebrew/pull/32346
   URL: https://github.com/freebsd/freebsd-ci/pull/3
   URL: https://lists.freebsd.org/pipermail/freebsd-testing/2015-January/000723.html
   URL: https://lists.freebsd.org/pipermail/freebsd-testing/2015-January/000722.html

   Contact: Craig Rodrigues <rodrigc_at_FreeBSD.org>
   Contact: Jenkins Administrators <jenkins-admin_at_FreeBSD.org>
   Contact: FreeBSD Testing <freebsd-testing_at_FreeBSD.org>

   Since the last status report, many people have contributed help in
   various areas to help with Continuous Integration and Testing in
   FreeBSD. Some of the highlights include:
     * The Jenkins project mentioned on their blog how FreeBSD is using
       Jenkins and kyua to run OS-level tests.
     * Craig Rodrigues submitted patches to upgrade Jenkins to use JNA
       4.1.0. The Jenkins project accepted these patches [JENKINS-24521]
       in the Jenkins 1.586 release. This fixed problems with PAM
       authentication support in Jenkins on FreeBSD [JENKINS-21507].
     * Craig Rodrigues gave a presentation "Kyua and Jenkins Testing
       Framework" for BSD at the Developer and Vendor summit on November
       3, 2014 in San Jose, California. In the presentation, Craig
       Rodrigues described how, for every commit to the FreeBSD source
       tree, nearly 3000 tests are run using kyua inside a bhyve virtual
       machine. The kyua test results are exported to JUnit XML format,
       which is then used by Jenkins to generate web-based test reports
       with graphs.
     * Li-Wen Hsu set up a Jenkins build named FreeBSD_Doc-igor to run the
       Igor tool written by Warren Block. Igor proofreads FreeBSD
       documentation and reports various errors.
     * Craig Rodrigues set up a Jenkins build named FreeBSD_HEAD_sparc64
       to build the FreeBSD HEAD branch for the sparc64 architecture
     * Garrett Cooper imported more tests from NetBSD. After this import,
       there are now over 3000 tests in the /usr/tests directory.
     * Susan Stanziano from Xinuous ran kyua tests and provided feedback
       about test errors, running the tests in a bhyve VM.
     * Andy Zhang from Microsoft ran kyua tests and provided feedback
       about test errors running in a Hyper-V 2012R2 VM.
     * Steve Wills ran the FreeBSD tests in Google Compute Engine and
       provided the test results.
     * Craig Rodrigues submitted a formula to create a package for kyua in
       the Homebrew packaging system on OS X. The Homebrew project
       accepted this. Now, kyua can easily be installed on OS X via a
       Homebrew package. Hopefully this will make it easier to share more
       test infrastructure and scripts with OS X.
     * Craig Rodrigues submitted to the Debian project a kyua package.
       Approval for this is still pending. A package will make it much
       easier to install kyua on Linux distributions which use Debian
       packages such as Debian, Ubuntu, and Linux Mint. Hopefully this
       will make it easier to share more test infrastructure and scripts
       with Linux.
     * Brian Gardner submitted scripts to run the Regression Test Harness
       for OpenJDK (jtreg). The test results are in JUnit XML format,
       which can be natively imported into Jenkins.
     * Ahmed Kamal, an experienced devops expert and past contributor to
       the Ubuntu project, offered to help Craig Rodrigues with improving
       the automation and deployment of Jenkins nodes in the FreeBSD
       cluster using the Saltstack automation framework. Ahmed is
       interested in helping the FreeBSD project.
     * Craig Rodrigues worked with Adrian Chadd to set up Jenkins builds
       of MIPS targets. The next step will be to get kyua tests running
       inside a QEMU MIPS VM.

Open tasks:

    1. Set up more builds based on different architectures.
    2. Improve the maintenance of nodes in the Jenkins cluster using
       devops frameworks such as Saltstack.
    3. Get feedback for improving the Kyua Quickstart Guide.
    4. People interested in helping out should join the
       freebsd-testing_at_FreeBSD.org list.
     __________________________________________________________________

Migration to ELF Tool Chain Tools

   URL: http://elftoolchain.sourceforge.net

   Contact: Ed Maste <emaste_at_freebsd.org>

   The ELF Tool Chain project provides BSD-licensed implementations of
   compilation tools and libraries for building and analyzing ELF objects.
   It started as part of FreeBSD but has moved to a standalone project to
   encourage wider participation from others in the open-source developer
   community. FreeBSD's libelf and libdwarf are now imported from upstream
   sources in contrib/elftoolchain.

   ELF Tool Chain provides a set of tools equivalent to the GNU Binutils
   suite. This project's goal is to import these tools into the FreeBSD
   base system so that we have a set of up-to-date and maintained tools
   that also provide support for new CPU architectures of interest, such
   as arm64.

   The following tools have now been imported and are available by setting
   the src.conf knob WITH_ELFTOOLCHAIN_TOOLS=yes:
     * addr2line
     * nm
     * size
     * strings
     * strip (elfcopy)

   A ports exp-run uncovered some bugs in these tools. The bugs are being
   fixed in the FreeBSD source tree and are in the process of being
   committed to the upstream project.

   ELF Tool Chain's readelf will be enabled as well once some missing
   functionality in ELF note parsing is added. ELF Tool Chain's elfcopy
   provides equivalent functionality to Binutils' objcopy, and accepts the
   same command-line arguments. For it to be a viable replacement for all
   uses of objcopy in the base system, it must gain support for writing
   portable exectuable (PE) format binaries, which are used by UEFI boot
   code.

   The ELF Tool Chain project does not currently provide replacements for
   as, ld, and objdump. For FreeBSD these tools will likely be obtained
   from the LLVM project.

   This project is sponsored by The FreeBSD Foundation.

Open tasks:

    1. Import readelf.
    2. Add missing functionality to readelf.
    3. Add missing functionality to elfcopy and migrate the base system
       build.
    4. Fix issues found by fuzzing inputs to the tools.
    5. Switch the default to WITH_ELFTOOLCHAIN_TOOLS.
     __________________________________________________________________

pkg(8)

   URL: https://github.com/freebsd/pkg

   Contact: The pkg team <pkg_at_FreeBSD.org>

   The package development team has released pkg(8) 1.4. This release
   fixes lots of bugs and adds some new features:
     * Stricter checking of paths passed via the plist
     * Change the ABI string to be closer to MACHINE_ARCH
     * Add three-way merge functionality
     * Add conservative upgrade support for multi repository
       configurations
     * Multirepository priority

   An important part of the development direction for the 1.4 release was
   stabilizing the existing features and improving the pkg(8) experience
   on small/embedded machines (reducing memory usage and speeding up
   operations).

   pkg(8) is not only the FreeBSD Package Manager, but also the Package
   Manager for DragonflyBSD. Support has been added to build pkg(8) on OS X
   and Linux. This work will allow other Operating Systems the option of
   adopting pkg(8) to manage their packages and bring new developers into
   the project.

Open tasks:

    1. Add more regression tests.
    2. Package the FreeBSD base system.
    3. Allow using mtree as a plist when creating a package.
    4. Implement flexible dependencies.
    5. Test the development branch.
    6. More developers are needed, check the Issues on Github.
     __________________________________________________________________

FreeBSD Xen

   URL: http://wiki.xen.org/wiki/FreeBSD_PVH
   URL: http://wiki.xen.org/wiki/FreeBSD_Dom0

   Contact: Roger Pau Monné <royger_at_FreeBSD.org>
   Contact: Justin T. Gibbs <gibbs_at_FreeBSD.org>

   During this quarter almost all pending Xen changes have been committed,
   enabling FreeBSD to be used as Dom0 under the new PVH mode. The set of
   features supported by FreeBSD is still limited, but it should allow for
   basic usage of FreeBSD as Dom0. Support for booting Xen from the
   FreeBSD boot loader will be committed very soon to HEAD.

   Apart from testing on a variety of hardware, work has now shifted to
   improve PVH support in Xen itself in order to have feature parity with
   a traditional PV Dom0 and to declare the PVH ABI as stable.

   Regarding guest improvements (running FreeBSD as a DomU), there is also
   ongoing work to add unmapped IO support to Xen blkfront, which is
   blocked pending some modifications to the generic bounce buffer code.

   This project is sponsored by Citrix Systems R&D, and Spectra Logic
   Corporation.

Open tasks:

    1. Test on different hardware.
    2. Improve the performance of the netback and blkback backends.
    3. Work with upstream Xen to improve PVH and make it stable.
    4. Improve generic bounce buffer code for unmapped bios in order to
       support blkfront alignment requirements.
     __________________________________________________________________

Linux Emulation Layer, the Linuxulator

   URL: https://svnweb.freebsd.org/base/user/dchagin/lemul/
   URL: https://reviews.freebsd.org/differential/query/i9Ua2XMYQtNX/

   Contact: Dmitry Chagin <dchagin_at_FreeBSD.org>

   The main goal of the Linux emulation layer project is the execution on
   FreeBSD of multithreaded Linux applications that require the glibc
   library version 2.20 or later to be available. Glibc 2.20 requires a
   Linux kernel (or emulation thereof) of version 2.6.32 or later. The
   main obstacle preventing this is that the current Linuxulator uses
   native FreeBSD processes for emulating Linux threads. This leads to
   several problems, including problems with process reparenting and
   dethreading, wait() and signal handling. It would be much better to
   reuse the FreeBSD kernel code for thread management than to create a
   completely new codebase for pseudothread management in the Linuxulator.

   At present, the linux emulation layer project has implemented all of
   the necessary system calls for supporting glibc 2.20, and more,
   bringing the emulated Linux kernel version to 2.6.32:
     * Using native threads for emulating Linux threads
     * Implemented VDSO support, including DWARF for signal trampolines,
       which are needed for stack unwinding in pthread_cancel()
     * Implemented the "vsyscall hack", used by some Linux-based
       distributions, including CentOS 6
     * Implemented the epoll() system call emulation
     * Added support for x86_64
     * Many bugs were fixed

   The project's code is located in the FreeBSD Project's Subversion
   repository at base/user/dchagin/lemul (a little bit old). To facilitate
   merging the improvements back to head, several patches have been placed
   on reviews.FreeBSD.org with the tag #lemul. Nearly half of the patches
   have already been approved by Ed Maste and Edward Tomasz Napierala.

Open tasks:

    1. Review and merge the lemul branch to head within the next month or
       two.
    2. Implement native and Linuxulator inotify() system calls.
    3. Implement the ptrace() system call for the x86_64 Linuxulator.
    4. Implement the signalfd() and timerfd() system calls for the
       Linuxulator.
    5. Implement Priority Inheritance Futexes for the Linuxulator.
    6. Extend xucred support, required for many Linux applications.
     __________________________________________________________________

PCI SR-IOV Infrastructure

   URL: https://github.com/rysto32/freebsd/commits/iov_ixl

   Contact: Ryan Stone <rstone_at_FreeBSD.org>

   PCI Single Root I/O Virtualization (SR-IOV) is an optional part of the
   PCIe standard that provides hardware acceleration for the
   virtualization of PCIe devices. When SR-IOV is in use, a function in a
   PCI device (known as a Physical Function, or PF) will present multiple
   Virtual PCI Functions (VF) on the PCI bus. These VFs are fully
   independent PCI devices that have access to the resources of the PF.
   For example, on a network interface card, VFs could transmit and
   receive packets independently of the PF.

   The most obvious use case for SR-IOV is virtualization. A hypervisor
   like bhyve could instantiate a VF for every VM and use PCI passthrough
   to assign the VFs to the VMs. This would allow multiple VMs to share
   access to the PCI device without having to do any expensive
   communication with the hypervisor, greatly increasing the performance
   of I/O within a VM.

   Work on the core PCI infrastructure is complete and undergoing review.
   Currently it is planned to commit the PCI infrastructure to head by the
   end of January.

   In addition to the PCI infrastructure, individual PCI drivers must be
   extended to implement SR-IOV. An SR-IOV implementation is in progress
   for the ixl(4) driver, which supports the Intel XL710 family of 40G and
   10G NICs. Currently it is planned to have this in review by the end of
   January. An implementation for ixgbe(4) is also in progress, but there
   is no timeline for completion.

   This project is sponsored by Sandvine Inc..
     __________________________________________________________________

Process Management

   Contact: Konstantin Belousov <kib_at_FreeBSD.org>
   Contact: Peter Holm <pho_at_FreeBSD.org>

   There were several improvements made to FreeBSD's process management
   last quarter.

   The Reaper facility was added, allowing a process to reliably track the
   running and exiting state of the whole subtree of its processes. It is
   intended to improve tools like timeout(1) or poudriere, by making it
   impossible for a runaway grandchild to escape the controlling process.
   The feature was designed based on similar facilities in DragonFlyBSD
   and Linux, with some references to Solaris contracts. Committed to HEAD
   in r275800.

   The FreeBSD suspension code does not ensure that the system, both
   software and hardware, is in a steady and consistent state. One aspect
   is usermode process activity, which is not yet stopped, continuing to
   making requests to the hardware. It is not realistic to expect drivers
   to be able to correctly handle the calls after SUSPEND_CHILD.

   We developed a facility to stop usermode threads at safe points, where
   they are known to not own and to not wait for kernel resources, in
   particular, not waiting for device requests finishing. It is based on
   the existing single-threading code, but extending it to allow external
   thread to put some processes into stopped state. Also, a facility to
   sync filesystems before suspend was added, to ensure that consistent
   metadata and as much as possible of the cached user data are on stable
   storage, to minimize the damage that could be caused by a failed
   resume.

   The code stressed some parts of the system and has led to discovery of
   a number of bugs in different areas, including process management,
   buffer cache, and syscall handlers. The bugs were fixed, and the fixes
   and features commmitted by a series culminating in r275745.

   During the work described above, it was noted that process spinlock
   duties are significantly overloaded (the same is true for the process
   lock). The spinlock was split into per-feature locks in r275121. As a
   result, it was also possible to eliminate recursion on it in r275372.

   This project is sponsored by The FreeBSD Foundation.
     __________________________________________________________________

Secure Boot

   URL: https://wiki.freebsd.org/SecureBoot

   Contact: Edward Tomasz Napiera³a <trasz_at_FreeBSD.org>

   UEFI Secure Boot is a mechanism that requires boot drivers and
   operating system loaders to be cryptographically signed by an
   authorized key. It will refuse to execute any software that is not
   correctly signed, and is intended to secure boot drivers and operating
   system loaders from malicious tampering or replacement.

   This project will deliver the initial phase of secure boot support for
   FreeBSD and consists of:
     * creating ports/packages of the gnu-efi toolchain, Matthew Garrett's
       shim loader, and sbsigntools
     * extending the shim to provide an API for boot1.efi to load and
       verify binaries signed by keys known to the shim
     * writing uefisign(8), a BSD-licensed utility to sign EFI binaries
       using Authenticode, as mandated by the UEFI specification.

   This project is sponsored by The FreeBSD Foundation.

Open tasks:

    1. Ensure that the signature format properly matches UEFI spec
       requirements.
    2. Verify that correctly signed, incorrectly signed, and unsigned
       loader components are handled properly.
    3. Investigate signed kernel ELF objects (including modules).
     __________________________________________________________________

Timer Function Support for Linuxulator

   Contact: Bjoern A. Zeeb <bz_at_FreeBSD.org>

   Since 2006, initial support for Linux timer function compatibility
   support was present but untested. This update corrects the initial
   implementation and makes it available to the 32-bit Linuxulator on
   amd64, not just on i386.

   Starting with FreeBSD 10.1, this enables users to run another FPGA
   high-level synthesis toolchain and emulation platform on a FreeBSD
   system.

   This project is sponsored by DARPA, and AFRL.
     __________________________________________________________________

Updating OpenCrypto

   URL: https://svnweb.freebsd.org/changeset/base/r275732
   URL: http://freebsdfoundation.blogspot.com/2014/08/freebsd-foundation-announces-ipsec.html

   Contact: John-Mark Gurney <jmg_at_FreeBSD.org>

   The project adds support for AES-GCM and AES-CTR modes to the
   OpenCrypto framework. Both software and AES-NI accelerated versions are
   functional, working and committed. Ermal Luçi (eri_at_) is working on
   adding support for the additional modes to IPsec.

   This project is sponsored by The FreeBSD Foundation, and Netgate.

Open tasks:

    1. Commit the port that provides the NIST KAT vectors so that the
       tests committed can run.
     __________________________________________________________________

FreeBSD on POWER8

   URL: https://wiki.freebsd.org/POWER8
   URL: http://www.tyan.com/campaign/openpower/

   Contact: Nathan Whitehorn <nwhitehorn_at_freebsd.org>
   Contact: Justin Hibbits <jhibbits_at_freebsd.org>
   Contact: Adrian Chadd <adrian_at_freebsd.org>

   IBM and the OpenPOWER Foundation are pushing for a wider software and
   hardware ecosystem for POWER8-based systems. Beginning January 3, we
   have been doing bringup work on a Tyan GN70-BP010 POWER8 server, a
   quad-core 3 GHz system with 32 hardware threads.

   The main target for the port is the PowerKVM hypervisor provided on
   OpenPOWER hardware. This uses the same software interfaces as the
   PowerVM hypervisor already supported on earlier POWER hardware. The
   target is to have this operation mode fully supported by FreeBSD 10.2.
   FreeBSD currently runs under the hypervisor when using a mass storage
   driver other than the built-in virtualized SCSI; the issues with the
   SCSI driver should be solved shortly.

   The longer-term goal is to also operate on the bare system. This
   requires interaction with the OPAL system firmware and the development
   of device drivers for the on-board PCI, console, and interrupt
   controller hardware. As of January 4, the FreeBSD kernel had printed
   initial messages to the console.

   This project is sponsored by FreeBSD Foundation .

Open tasks:

    1. Fix virtualized SCSI driver in PowerKVM.
    2. Write OPAL drivers.
    3. Integrate loader(8) with petitboot bootloader.
     __________________________________________________________________

FreeBSD/arm64

   URL: https://wiki.freebsd.org/arm64
   URL: https://github.com/FreeBSDFoundation/freebsd/tree/arm64-dev

   Contact: Andrew Turner <andrew_at_FreeBSD.org>
   Contact: Ed Maste <emaste_at_FreeBSD.org>
   Contact: Zbigniew Bodek <zbb_at_semihalf.com>

   There is growing interest in ARM's 64-bit architecture. Officially
   named AArch64, it is also known as ARMv8 and arm64. Andrew Turner
   started initial work on the FreeBSD/arm64 port at the end of 2012.

   The FreeBSD Foundation is now collaborating with ARM, Cavium, the
   Semihalf team, and Andrew Turner to port FreeBSD to arm64, and
   significant progress was made on the port over the last quarter of
   2014.

   As of the end of the year, FreeBSD boots to single-user mode on arm64,
   executing both static and dynamic applications. Patches in review allow
   FreeBSD to boot to multi-user mode, and these are expected to be merged
   soon. This includes implementing many stub functions in userland and
   the kernel. With this, FreeBSD has booted to multi-user mode on both
   the ARM Foundation Model and the QEMU full system emulation.

   Cavium has supplied a software simulator of their Thunder X hardware.
   Bringup of FreeBSD has started on this including writing new drivers
   for the ARM Generic Interrupt Controller v3 (GICv3) and a preliminary
   driver for the PCIe root complex. With these, FreeBSD is able to boot
   on this simulator in preparation for testing on hardware. Further work
   is progressing to add full PCIe bringup and to add support for the
   GICv3 Interrupt Translation Services (ITS) for MSI-X.

   Further improvements have been made to the loader to allow it to take
   the Flattened Device Tree data from UEFI and pass it to the kernel. In
   the kernel, busdma, CPU identification, and improvements to interrupt
   handling have been made, along with preliminary KDB support.

   Hardware for testing the port will be installed in the FreeBSD Test
   Cluster hosted by Sentex Communications. The first reference platform,
   Cavium's ThunderX, is expected to arrive in the cluster in mid-January.

   This project is sponsored by The FreeBSD Foundation, ARM, and Cavium.

Open tasks:

    1. Bring up and test kernel support on real hardware.
    2. Implement the remaining userland libraries and binaries.
    3. Produce installable images.
     __________________________________________________________________

libxo: Generate Text, XML, JSON, and HTML Output

   URL: http://juniper.github.io/libxo/libxo-manual.html

   Contact: Marcel Moolenaar <marcel_at_FreeBSD.org>

   Many FreeBSD utilities provide insight into the operational state of a
   running FreeBSD system and as such are used regularly to monitor the
   system. These utilities provide their output in a human readable form
   and sometimes even optimized for the limited width of traditional
   terminals. Often times these utilities are used by other programs that
   want to present the output in different ways or as part of other user
   interfaces. For such use cases, it is infinitely better to work with
   machine-readable output instead of human-readable output.

   Juniper Networks has created a library called libxo, which makes it
   easy for utilities to emit output in various formats. By default, text
   output is emitted, but with the introduction of the --libxo option this
   can be changed to XML, JSON, and HTML. The FreeBSD project has imported
   this library into the base system and is in the process of rewriting
   utilities to use libxo.

   Related to this, FreeBSD now also has the xo utility that allows
   scripts to grow the same capabilities. Instead of using echo or printf
   in scripts, output can be done using the xo utility.

   The df, w, and wc utilities have been converted to use libxo. The
   netstat utility is in the process of being converted and others are
   planned.

Open tasks:

    1. FreeBSD contains a lot of utilities that could benefit from having
       the ability to emit various output formats, too many for a few
       people to convert in time for FreeBSD 11.0-RELEASE. If you or your
       company would like to see a particular utility converted, consider
       learning about libxo and trying to perform the conversion of said
       utility to help out.
     __________________________________________________________________

mandoc(1) Support

   URL: http://mdocml.bsd.lv

   Contact: Baptiste Daroussin <bapt_at_FreeBSD.org>
   Contact: Ulrich Spoerlein <uqs_at_FreeBSD.org>
   Contact: The Documentation Team <docs_at_FreeBSD.org>

   mandoc(1) has been made the default manual page formatter on HEAD --
   man(1) will use mandoc(1) to format manual pages by default, then fall
   back to groff(1) if it fails.

   This change also fixes an issue with the FreeBSD man(1) command not
   being able to properly deal with ".so" in gzipped manual pages.

   The documentation team has spent a lot of time fixing issues reported
   by mandoc(1) in the FreeBSD manual pages. This greatly improves the
   quality of our manual pages.

   Most manual pages with remaining issues are from contrib/, for which
   changes should be reported and fixed upstream.

   The "manlint" target has also been switched to use mandoc -Tlint, which
   results in the target being more useful when working on manual pages.

   Some groff(1) versus mandoc(1) formatting differences have been spotted
   and reported to mandoc's upstream developers.

Open tasks:

    1. Switch makewhatis(1) to the version shipped with mandoc(1).
    2. Figure out a way to detect mandoc(1)-unfriendly manpages in ports
       and create catpages with groff(1) for them.
    3. Remove groff(1) from the base system.
     __________________________________________________________________

GNOME on FreeBSD

   URL: http://www.freebsd.org/gnome
   URL: https://github.com/freebsd/freebsd-ports-gnome
   URL: https://wiki.gnome.org/Projects/Jhbuild/FreeBSD

   Contact: FreeBSD GNOME Team <gnome_at_FreeBSD.org>

   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.

   This quarter was an exciting time for the GNOME Team. We imported GNOME
   3.14.0 and CINNAMON 2.2.16 into the ports tree. At the same time, we
   removed the old GNOME 2.32 desktop. And two weeks later we updated
   GNOME to 3.14.2 and CINNAMON to 2.4.2, which was collected while the
   preparation for the initial GNOME 3.14.0 import was under way.

   We moved our development repo to GitHub. The repo is structured as
   follows: the master branch is vanilla FreeBSD Ports, and we have theme
   branches for topics such as the porting of MATE 1.9 (the mate-1.10
   branch) and GNOME 3.15 (the gnome-3.16 branch). The GNOME 3.14 branch
   (gnome-3.14) is not used or updated any more because the content has
   been committed to ports, but is kept around for the history.

Open tasks:

    1. The GNOME website is stale. Work is starting on updating the
       development section. We could use some help here.
    2. MATE 1.10 porting is under way; the latest 1.9 releases are
       available in the mate-1.10 branch.
    3. GNOME 3.16 porting is under way, and is available in the gnome-3.16
       branch.
     __________________________________________________________________

KDE on FreeBSD

   URL: https://freebsd.kde.org/
   URL: https://freebsd.kde.org/area51.php
   URL: https://wiki.freebsd.org/KDE
   URL: https://mail.kde.org/mailman/listinfo/kde-freebsd
   URL: http://portscout.freebsd.org/kde_at_freebsd.org.html

   Contact: KDE on FreeBSD team <kde_at_FreeBSD.org>

   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.

   As mentioned last quarter, Alonso Schaich (alonso_at_) became a committer
   and since then has made good progress helping his mentors Raphael Kubo
   da Costa (rakuco_at_) and Max Brazhnikov (makc_at_) maintain all Qt and
   KDE-related ports.

   This quarter, Qt 5.3 was finally committed to the ports tree. Extensive
   work was required, including cleaning up and/or changing a lot of the
   Qt5 ports infrastructure to make it both easier to maintain the Qt
   ports as well as finally make it possible to build newer versions when
   older ones are already installed on the system.

   We have also updated KDE in our experimental area51 repository and
   committed several updates to other ports such as KDevelop and KDE
   Telepathy. Overall, we have worked on the following releases:
     * CMake 3.1.0 (in area51, exp-run in progress for it to be committed
       to the ports tree)
     * Calligra 2.8.6 (in area51)
     * KDE 4.14.2 (committed to ports), 4.14.3 (in area51)
     * KDE Telepathy 0.8.0 (committed to ports)
     * KDevelop 4.7.0 (committed to ports)
     * Qt 5.3.2 (committed to ports)

   Tobias Berner has contributed patches to update QtCreator to 3.3.0 as
   well as KDE Frameworks 5 ports which are under review for inclusion in
   our experimental area51 repository.

Open tasks:

    1. Update Qt5 to 5.4.0.
    2. Try to contribute to the work on getting rid of HAL on FreeBSD,
       which seems to be gaining more traction recently.
    3. Add KDE Frameworks 5 ports to our experimental repository.
     __________________________________________________________________

Linux Emulation Ports

   URL: https://github.com/allanjude/linux-ports
   URL: https://github.com/vassilisl/freebsd-linux_base-f20
   URL: https://svnweb.freebsd.org/base/user/dchagin/lemul/

   Contact: Johannes Meixner <xmj_at_FreeBSD.org>
   Contact: Allan Jude <allanjude_at_FreeBSD.org>
   Contact: Vassilis Laganakos <vassilis_at_einval.com >

   The Linux emulation stack in the ports collection was upgraded to
   include CentOS 6.6 on November 11. After smoothing out several bugs
   that had been introduced, we were able to bump the default version of
   the Linux userland from Fedora 10 to CentOS 6.6 on December 9th.
   Providing a more modern Linux userland and support libraries allows a
   large number of Linux applications to be run on FreeBSD.

   The goal behind providing an updated Fedora-based userland is to
   support more desktop-oriented applications, which require newer
   libraries than are provided by CentOS 6. Providing 64-bit versions of
   the CentOS userland will allow applications that are only available in
   64-bit form, such as a number of scientific and math related
   applications, to be run on FreeBSD. Support for 64-bit binaries also
   requires the 64-bit Linux kernel emulation layer from the lemul branch,
   which requires more testing and review before being merged into HEAD.

   This project is sponsored by Perceivon Hosting Inc., and ScaleEngine
   Inc..

Open tasks:

    1. Update Allan Jude's 64-bit Linux ports to CentOS 6.6.
    2. Add Fedora 20 base/userland ports to ports/head.
    3. Refactor Mk/bsd.linux-*.mk to facilitate the above additions.
    4. Promote testing and merging of Dmitry Chagin's lemul branch.
       (Updated Linux kernel emulation, and 64-bit support)
     __________________________________________________________________

The Graphics Stack on FreeBSD

   URL: https://wiki.freebsd.org/Graphics
   URL: http://blogs.freebsdish.org/graphics/
   URL: https://github.com/freebsd/freebsd-ports-graphics

   Contact: FreeBSD Graphics team <freebsd-x11_at_FreeBSD.org>

   Mesa was upgraded to 10.3, then 10.4 for FreeBSD 10.1-RELEASE and
   11-CURRENT. We test release candidates and therefore this port is now
   usually updated shortly after a new release. Mesa 10.x brings huge
   improvements in terms of OpenGL standards support, performance and
   stability, especially for Radeon owners. Mesa 9.1 is kept for FreeBSD
   9.x, but we have plans to fix this; see below.

   graphics/gbm and devel/libclc are new ports used by Mesa to implement
   OpenCL. The next step is to finish the port for Mesa's libOpenCL.so,
   named Clover. This will permit users to run OpenCL programs on Radeon
   GPUs for now.

   xserver was upgraded from 1.12 to 1.14. This is the last version of
   xserver supporting Mesa 9.1. Changes are described in an article on the
   blog. The most noticeable one is the switch from the input device
   detection back-end based on HAL to the one based on devd(8). hald(8) is
   still required by many desktop environments, but the X.Org server
   itself is free from it.

   xserver was the last port supporting the WITH_NEW_XORG knob. The knob
   is now completely removed. This was the occasion to add WITH_NEW_XORG
   and WITH_KMS to the list of deprecated knobs to help people clean up
   their make.conf. At the same time, the new-xorg alternate pkg
   repository was deprecated.

   After discussion, two options were enabled by default:
     * TEXTURE_FLOAT in graphics/dri, which allows Mesa to advertise the
       support for OpenGL 3.0+;
     * LCD_FILTERING in print/freetype2, which enables the subpixel
       rendering engine, improving font anti-aliasing.

   These two packages now provide a better user experience out-of-the-box.
   Users who are uncomfortable with the options may unset them and rebuild
   the ports. There is no need to rebuild anything else.

   On the kernel side, Tijl Coosemans added AGP support back to the TTM
   memory manager and therefore to the Radeon driver. His work was merged
   back to stable/10 and will be available in FreeBSD 10.2-RELEASE.

   We migrated our Ports development tree to Git and GitHub. Tracking
   changes in the official Ports tree and preparing patches is much
   easier. Furthermore, we can accept pull requests. All of the reasons
   behind this change are detailed on the blog and the workflow is
   described on the wiki.

   The XDC 2014 (X Developer's Conference) was a great conference.
   Reviving the relationship with the developers of the graphics stack was
   a success! A report is available on the blog.

   Our next items on the roadmap are:
    1. Provide FreeBSD 10.1-RELEASE's i915 driver to FreeBSD 9.x users
       through a new port. This is a work in progress, but it would allow
       us to remove Mesa 9.1 and make Mesa 10.4 available everywhere.
    2. Once Mesa 9.1 is gone, we can update xserver to 1.16.

Open tasks:

    1. See the "Graphics" wiki page for up-to-date information.
     __________________________________________________________________

Wine/FreeBSD

   URL: http://wiki.FreeBSD.org/Wine
   URL: http://wiki.FreeBSD.org/i386-Wine
   URL: http://www.winehq.org

   Contact: Gerald Pfeifer <gerald_at_FreeBSD.org>
   Contact: David Naylor <dbn_at_FreeBSD.org>
   Contact: Kris Moore <kmoore_at_FreeBSD.org>

   The Wine on FreeBSD project has been steadily forging ahead for the
   past three quarters and has updated the ports for the following
   versions:
     * Stable releases: 1.6.2 (3 port revisions)
     * Development releases: 1.7.16 through 1.7.33

   The ports have packages built for amd64 (available through the ports
   emulators/i386-wine and i386-wine-devel) for FreeBSD 8.4, 9.1+, 10.0+,
   and CURRENT.

   Accomplishments include:
     * Upstreaming 33 patches to fix Wine on FreeBSD -- many thanks to
       Gerald for this work.
     * Migrating to the USES framework.
     * Building Wine with the X compositing extension.
     * Adding support for MPG123 and V4L.
     * Backporting changes made to the -devel ports to the stable ones and
       fixing minutiae here and there.
     * Creating a new Wine port for the Compholio patches.
     * Changing i386-wine(-devel) to set the LD_LIBRARY_PATH_RPATH
       variable.
     * Improving library bundling for i386-wine(-devel).
     * Various improvements to the patch-nvidia.sh script for
       i386-wine(-devel).
     * Various smaller changes.

   We would like to thank all the volunteers who contributed feedback or
   even patches. We would also like to welcome kmoore_at_ to the Wine team.
   He has been extensively involved in bringing wine-compholio to the
   Ports Collection.

   Future development on Wine will focus on:
     * Creating a 64-bit capable port of Wine (aka Wine64).
     * Creating a WoW64 capable port of Wine (aka Wine + Wine64).
     * Fixing directory listing on FreeBSD 8 and 9.

   Maintaining and improving Wine is a major undertaking that directly
   impacts end-users on FreeBSD, including many gamers. If you are
   interested in helping, please contact us. We will happily accept
   patches, suggest areas of focus, or have a chat.

Open tasks:

    1. Open Tasks and Known Problems (see the Wine wiki page).
    2. FreeBSD/amd64 integration (see the i386-Wine wiki page).
    3. Porting WoW64 and Wine64.
     __________________________________________________________________

Xfce

   URL: https://wiki.freebsd.org/Xfce

   Contact: FreeBSD Xfce Team <xfce_at_FreeBSD.org>

   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.

   During this quarter, the team has kept these applications up-to-date:
     * misc/xfce4-weather-plugin 0.8.5
     * science/xfce4-equake-plugin 1.3.6
     * sysutils/xfce4-netload-plugin 1.2.4
     * sysutils/xfce4-systemload-plugin 1.1.2
     * www/midori 0.5.9
     * x11/xfce4-taskmanager 1.1.0
     * x11/xfce4-whiskermenu-plugin 1.4.2
     * x11-wm/xfce4-desktop 4.10.3

   Two new ports have also been added (taken from our repository):
     * deskutils/xfce4-volumed-pulse
     * x11/xfce4-dashboard

   Moreover, we are working on the next stable release, with these ports
   being updated:
     * sysutils/xfce4-power-manager 1.4.2
     * x11/xfce4-dashboard 0.3.4
     * x11-wm/xfce4-session 4.11.1

   We sent some patches to upstream.
     * bug #11104, to keep 'wallpaper settings' in Ristretto with
       xfdesktop >= 4.11
     * bug #11249, add 'Hidden' option in desktop item editor (refused)
     * bug #11413, to use sysctl(3) and acpi_video(4) for backlight
       support

   A FAQ is being written D1305.

Open tasks:

    1. Find a workaround for when acpi_video(4) is not functional (panel
       crashes); OpenBSD seems to have same problem.
    2. Clean up patch in order to add new panel plugin in ports tree.
    3. Continue to work on documentation, especially the Porter's
       Handbook.
     __________________________________________________________________

More Michael Lucas Books

   URL: https://www.michaelwlucas.com/nonfiction/freebsd-mastery-storage-essentials
   URL: http://blather.michaelwlucas.com

   Contact: Michael Lucas <mwlucas_at_michaelwlucas.com>

   The first small FreeBSD Book, "FreeBSD Mastery: Storage Essentials" is
   available.

   Lucas is moving on to FreeBSD books on ZFS, Specialty Filesystems, and
   jails. They will hopefully be available by BSDCan 2015.

   Get status updates on his blog, or follow _at_mwlauthor on Twitter.

Open tasks:

    1. Push BSDCan out to June, so he has more time to write the new
       books.
     __________________________________________________________________

New Translators Mailing List

   Contact: FreeBSD Translators Mailing List <freebsd-translators_at_FreeBSD.org>

   A new mailing list has been created for people translating FreeBSD
   documents and programs from English into other languages. Discussions
   can include methods, tools, and techniques. Existing translators are
   encouraged to join so there is a single point of contact. New
   translators and those who wish to help with translation are welcome.

   New members are asked to introduce themselves and mention the languages
   they are interested in translating.

Open tasks:

    1. Encourage existing translators to join.
    2. Welcome and educate new volunteers.
    3. Work on implementing newer and easier translation systems and
       tools.
     __________________________________________________________________

Creating Vagrant Images with Packer

   URL: http://blogs.freebsdish.org/brd/2014/12/22/freebsd-packer-vagrant/
   URL: https://github.com/so14k/packer-freebsd

   Contact: Brad Davis <brd_at_FreeBSD.org>

   We have developed a recipe to use Packer to create FreeBSD Vagrant
   images to run on VMware and VirtualBox.

   Packer is a tool for creating identical machine images for multiple
   platforms from a single source configuration.

   Vagrant is a tool to create and configure lightweight, reproducible,
   and portable development environments.

   To get started, clone the Git repo and follow the directions in the
   README. More information is available from the Packer and Vagrant
   websites.
     __________________________________________________________________

FreeBSD Forum Software Migration

   Contact: FreeBSD Forums Administration Team <forum-admins_at_>

   With funding from the FreeBSD Foundation, the FreeBSD forums were
   migrated to XenForo software. The new software is far more capable and
   easy to use. While the entire forum team contributed, Daniel Gerzo did
   an excellent job importing existing users and messages and bringing
   back the often-requested "Thanks" feature. The upgrade was completed in
   time to be ready for the influx of new users from the release of
   FreeBSD 10.1, and we have already seen an increase in usage.

   Developers with an _at_FreeBSD.org address can contact forum
   administrators to obtain the highly-desired "_at_" suffix on their forum
   user name along with a Developer flag.

   We want to thank the Foundation for making this possible, and the users
   for their patience and continued presence on the forums!

   This project is sponsored by The FreeBSD Foundation .

Open tasks:

    1. Encourage more developers and users to try the new forums.
    2. Continue getting feedback from users for tuning and improvements.
     __________________________________________________________________

The FreeBSD Foundation

   URL: http://www.FreeBSDFoundation.org/
   URL: http://freebsdjournal.com/

   Contact: Deb Goodkin <deb_at_FreeBSDFoundation.org>

   The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated
   to supporting and promoting the FreeBSD Project and community
   worldwide. Most of the funding is used to support FreeBSD development
   projects, conferences, and developer summits; purchase equipment to
   grow and improve the FreeBSD infrastructure; and provide legal support
   for the Project.

   We ended the year exceeding our fundraising goal, by raising over
   $2,372,132, from 1670 donors! Thank you to everyone who made a donation
   in 2014.

   We produced issues five and six of the FreeBSD Journal, ending the year
   with over 6300 subscribers, exceeding our first-year goal of 5000
   subscribers. We also added the desktop/digital edition, so people can
   read the magazine from their browsers. We also hosted a meeting with
   the Journal Editorial Board and worked out the editorial calendar for
   the next two years. This includes topics and articles for the future
   issues.

   We were a gold sponsor of EuroBSDCon 2014, and a sponsor of the
   preceding Developer Summit. A few of our team members attended, which
   allowed us to have an informal face-to-face board meeting, with a focus
   on supporting the European region. Kirk McKusick gave a two-day FreeBSD
   tutorial and Erwin Lansing helped run the Developer Summit. We
   sponsored 5 FreeBSD contributors to attend the conference.

   We were a sponsor of the Grace Hopper Conference. Dru Lavigne gave an
   "introduction to FreeBSD" presentation, that was well attended. We also
   sponsored Shteryana Shopova to represent FreeBSD, along with Dru, at
   our booth.

   We were a sponsor of MeetBSD. Most of our team members attended this
   conference. Kirk McKusick gave a talk on BSD history. We also had a
   booth, and raised over $2,200 in donations. We sponsored one person to
   attend this conference.

   George organized and ran the two-day Silicon Valley Vendor and
   Developer Summit following MeetBSD. A lot of work gets started and
   accomplished at these summits, for example, Kirk worked with various
   folks to get the ino64 (64-bit inode numbers) project moving. It
   started in 2011 as a Summer of Code project and has sputtered since
   getting pushed into the system.

   In addition to the above conferences, we helped promote FreeBSD at the
   following conferences:
     * All Things Open
     * Ohio Linux Fest
     * LISA

   LISA had a great turnout for Dru Lavigne's FreeBSD BoF talk.

   We visited a few large FreeBSD users in the Bay Area to discuss their
   use of FreeBSD, plans, and needs, and help facilitate collaboration
   between them and the Project.

   Cheryl Blain joined our board, bringing a strong background in business
   development and fundraising.

   We received the largest donation in our history, and our treasurer put
   together an endowment strategy for us to follow.

   We increased our FreeBSD marketing efforts to help promote and advocate
   for FreeBSD, as well as educate people on FreeBSD. Some our FreeBSD
   marketing highlights include:
     * Created the FreeBSD 10 brochure
     * Created the Get Involved brochure for recruiting
     * Created a testimonial flyer to encourage more companies to write
       FreeBSD testimonials for us.

   These flyers are available on the FreeBSD Foundation site for FreeBSD
   advocates to promote FreeBSD at conferences around the world. We also
   put ads for the Foundation and FreeBSD in the FreeBSD Journal and
   USENIX ;login: magazine.

   We are producing a monthly newsletter to highlight what we did the
   previous month to support the FreeBSD Project. We also produced our
   December semi-annual newsletter.

   We redesigned and launched phase 1 of our website. It should be easier
   to navigate and find the information you need to get help from or to
   help the Foundation.

   Glen Barber visited the Microsoft main campus and worked with Microsoft
   Hyper-V developers to resolve outstanding issues with providing FreeBSD
   images for the Microsoft Azure platform.

   Glen also visited the NYI colocation facility to install and configure
   new servers purchased by the Foundation.

   We finished the 10.1-RELEASE cycle.

   Our project development staff and contractors have been working on
   various projects to add features to and improve FreeBSD. Some of their
   reports are included in this overall report. Some projects that were
   worked on this quarter were adding support for 64-bit ARM architecture
   to FreeBSD, integration work on the vt(4) updated console and UEFI boot
   support, Secure Boot, refining the in-kernel iSCSI target and initiator
   stack, an autofs-based automount daemon, migrating to the ELF Tool
   Chain, and implementing modern AES modes in FreeBSD's cryptographic
   framework.

   To read more about how we helped support the FreeBSD Project and
   community, read our semi-annual newsletter.
     __________________________________________________________________

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQGgBAEBCgAGBQJUvdl5AAoJECjZpvNk63USvm4MIONtg7ZxQXtS6ebzHtKSyYxe
fbj0bThjJBQwvgxuM8sqAI2tCmDI/BCKh5KsNGYQLs8kVYtFE+N8AWitLlx+fxT1
iOge5UTL2GK2jZObON20jqojJU5waYZvEDyu+cLZFBl92IA/Q1iBbtyhpMOS02Fc
sLsMZv/mNmmw8xQbvVjOFFO98DeK67ulgj0g1in6iSiM+FWBPDm/aGbOVGhUmtFS
OjmX4SnZlmOrm6WVpI84TAb7XqGXqJ09BbVKWaPK4nug+BrNH3k9LjAkMZGKtMmF
Jls34T6JdxM+cSDik2VqkiAlr+k7nJUjKe8TnFrIBgCjq+5tRfTiq4Laly2/U25L
3GEYeoaAgColqVx3vDSKukbyaBOeDy79dtlqnCPS3Tjv1+Kob2w3zz6W7WfMX3cj
Hg5ZfUivTPq2CI5+tVe3SM8eBP+BerxU4GXFWE+a6uWUS+L/Zxyu864z2bk6noNI
Rd4aZkihamW2nzxqa/+pJMFq88y5afWgLFvHGwl9T092Pgc=
=VGnI
-----END PGP SIGNATURE-----
Received on Tue Jan 20 2015 - 03:49:01 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:55 UTC