[FreeBSD-Announce] FreeBSD Quarterly Status Report - Fourth Quarter 2014
bjk at FreeBSD.org
Tue Jan 20 04:50:13 UTC 2015
-----BEGIN PGP SIGNED MESSAGE-----
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
* 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
* FreeBSD Xen
* Linux Emulation Layer, the Linuxulator
* PCI SR-IOV Infrastructure
* Process Management
* Secure Boot
* Timer Function Support for Linuxulator
* Updating OpenCrypto
* FreeBSD on POWER8
* libxo: Generate Text, XML, JSON, and HTML Output
* mandoc(1) Support
* GNOME on FreeBSD
* KDE on FreeBSD
* Linux Emulation Ports
* The Graphics Stack on FreeBSD
* More Michael Lucas Books
* New Translators Mailing List
* Creating Vagrant Images with Packer
* FreeBSD Forum Software Migration
* The FreeBSD Foundation
FreeBSD Release Engineering Team
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
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 .
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@,
jmg@, jmmv@, bofh@, truckman@) and six were taken in for safekeeping
(sylvio@, pclin@, flz@, jsa@, anders@, motoyuki@).
On the management side, miwi@ 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,
On the QA side, 39 exp-runs were performed to validate sensitive
updates or cleanups.
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
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.
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
A bhyve status update presentation was given at the FreeBSD Vendor
Summit in Nov 2014. The slides are available at
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
* Various improvements to PIC emulation to be able to boot legacy
* 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
* grub-bhyve is now able to connect to an nmdm(4) console using the
1. Improve documentation.
2. bhyveucl is a script for starting bhyve instances based on a libUCL
config file. More information at
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
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
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
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
Thanks to Ed Maste, Roman Divacky, Andrew Turner, Justin Hibbits, and
Antoine Brodin for their invaluable help with this import.
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
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.
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
To simplify using an external toolchain, the following pre-seeded
configurations have been added to the ports tree:
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.
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
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
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
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
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
10. I need to look into irq affinity for vtnet.
11. We need to support virtualized clocks; bryanv@ 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
FreeBSD on the Acer C720 Chromebook
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
1. Streamline patches and merge them into HEAD.
2. Make suspend/resume work (depends on Haswell support).
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
* 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.
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
Jenkins Continuous Integration for FreeBSD
URL: http://lists.freebsd.org/pipermail/freebsd-testing/2015-January/000713. 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
* 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
* 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.
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
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
The following tools have now been imported and are available by setting
the src.conf knob WITH_ELFTOOLCHAIN_TOOLS=yes:
* 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
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.
1. Import readelf.
2. Add missing functionality to readelf.
3. Add missing functionality to elfcopy and migrate the base system
4. Fix issues found by fuzzing inputs to the tools.
5. Switch the default to WITH_ELFTOOLCHAIN_TOOLS.
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
* 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
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
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.
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
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
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.
1. Review and merge the lemul branch to head within the next month or
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
5. Implement Priority Inheritance Futexes for the Linuxulator.
6. Extend xucred support, required for many Linux applications.
PCI SR-IOV Infrastructure
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..
Contact: Konstantin Belousov <kib at FreeBSD.org>
Contact: Peter Holm <pho at FreeBSD.org>
There were several improvements made to FreeBSD's process management
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
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
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.
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.
1. Ensure that the signature format properly matches UEFI spec
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
This project is sponsored by DARPA, and AFRL.
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@) is working on
adding support for the additional modes to IPsec.
This project is sponsored by The FreeBSD Foundation, and Netgate.
1. Commit the port that provides the NIST KAT vectors so that the
tests committed can run.
FreeBSD on POWER8
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 .
1. Fix virtualized SCSI driver in PowerKVM.
2. Write OPAL drivers.
3. Integrate loader(8) with petitboot bootloader.
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
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.
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
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
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.
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.
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
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.
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
KDE on FreeBSD
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@) became a committer
and since then has made good progress helping his mentors Raphael Kubo
da Costa (rakuco@) and Max Brazhnikov (makc@) maintain all Qt and
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.
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
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
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
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.
1. See the "Graphics" wiki page for up-to-date information.
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
* 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+,
* 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
* Improving library bundling for i386-wine(-devel).
* Various improvements to the patch-nvidia.sh script for
* Various smaller changes.
We would like to thank all the volunteers who contributed feedback or
even patches. We would also like to welcome kmoore@ to the Wine team.
He has been extensively involved in bringing wine-compholio to the
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.
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.
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):
Moreover, we are working on the next stable release, with these ports
* 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
A FAQ is being written D1305.
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
More Michael Lucas Books
Contact: Michael Lucas <mwlucas at michaelwlucas.com>
The first small FreeBSD Book, "FreeBSD Mastery: Storage Essentials" is
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 @mwlauthor on Twitter.
1. Push BSDCan out to June, so he has more time to write the new
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.
1. Encourage existing translators to join.
2. Welcome and educate new volunteers.
3. Work on implementing newer and easier translation systems and
Creating Vagrant Images with Packer
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
FreeBSD Forum Software Migration
Contact: FreeBSD Forums Administration Team <forum-admins@>
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 @FreeBSD.org address can contact forum
administrators to obtain the highly-desired "@" 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 .
1. Encourage more developers and users to try the new forums.
2. Continue getting feedback from users for tuning and improvements.
The FreeBSD Foundation
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
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
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
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
* All Things Open
* Ohio Linux Fest
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
To read more about how we helped support the FreeBSD Project and
community, read our semi-annual newsletter.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
-----END PGP SIGNATURE-----
More information about the freebsd-announce