[FreeBSD-Announce] FreeBSD Quarterly Status Report - Second Quarter 2014

Glen Barber gjb at FreeBSD.org
Thu Jul 24 18:34:46 UTC 2014

Hash: SHA256

FreeBSD Project Quarterly Status Report: April - June 2014

   This report covers FreeBSD-related projects between April and June
   2014. This is the second of four reports planned for 2014.

   The second quarter of 2014 was a very busy and productive time for the
   FreeBSD Project. A new FreeBSD Core Team was elected, the FreeBSD Ports
   Management Team branched the second quarterly "stable" branch, the
   FreeBSD Release Engineering Team was in the process of finalizing the
   FreeBSD 9.3-RELEASE cycle, and many exciting new features have been
   added to FreeBSD.

   Thanks to all the reporters for the excellent work! This report
   contains 24 entries and we hope you enjoy reading it.

   The deadline for submissions covering the period from July to September
   2014 is October 7th, 2014.

FreeBSD Team Reports

     * FreeBSD Core Team
     * FreeBSD Port Management Team
     * FreeBSD Release Engineering Team


     * Chelsio iSCSI Offload Support
     * CUSE4BSD
     * FreeBSD and Summer of Code 2014
     * New Automounter
     * pkg(8)
     * QEMU bsd-user-Enabled Ports Building
     * RPC/NFS and CTL/iSCSI Performance Optimizations
     * ZFSguru


     * PostgreSQL Performance Improvements
     * Running FreeBSD as an Application on Top of the Fiasco.OC
     * SDIO Driver
     * TMPFS Stability
     * UEFI Boot
     * Updated vt(4) System Console


     * FreeBSD/arm64


     * FreeBSD Python Ports
     * KDE/FreeBSD
     * The Graphics Stack on FreeBSD


     * Quarterly Status Reports


     * FreeBSD Host Support for OpenStack and OpenContrail
     * The FreeBSD Foundation

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.

   Topics for core this quarter have included some far-reaching policy
   reviews and some significant changes to the project development

   In May, a new release policy was published and presented at the BSDCan
   developer conference by John Baldwin. The idea is that each major
   release branch (for example, 10.X) is guaranteed to be supported for at
   least five years, but individual point releases on each branch, like
   10.0-RELEASE, will be issued at regular intervals and only the latest
   point release will be supported.

   Another significant change did not receive approval. When the change to
   the Bylaws reforming the core team election process was put to the vote
   of all FreeBSD developers, it failed to reach a quorum.

   June saw the culmination of a long running project to replace the
   project's bug tracking system. As of June 3, the FreeBSD project has
   switched to Bugzilla as its bug tracking system. All of the history of
   GNATS PRs has been preserved, so there is no need to re-open old
   tickets. Work is still going on to replicate some of the integration
   tweaks that had been applied to GNATS, but all necessary functionality
   has been implemented and the project is already seeing the benefits of
   the new capabilities brought by Bugzilla.

   An election to select core members for the next two year term of office
   took place during this period. We would like to thank retiring members
   of core for their years of service. The new core team provides
   continuity with previous core teams: about half are incumbents from the
   previous team, and several former core team members have returned after
   a hiatus. Core now includes two members of the FreeBSD Foundation board
   and one other Foundation staff member, aiding greater coordination at
   the top level of the project. At the same time the core-secretary role
   was passed on to a new volunteer.

   Other activities included providing consultation on licensing terms for
   software within the FreeBSD source tree, and oversight of changes to
   the membership of postmaster and clusteradm.

   Three new src commit bits were issued during this quarter, and one was
   taken into safekeeping.

FreeBSD Port Management Team

   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://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: FreeBSD Port Management Team <portmgr at FreeBSD.org>

   The ports tree slowly approaches the 25,000 ports threshold, while the
   PR count is slightly below 1800.

   In Q2 we added three new committers, took in one commit bit for
   safekeeping, and reinstated one commit bit.

   In May, Thomas Abthorpe was replaced by Frederic Culot as portmgr
   secretary, and Steve Wills became a member of the portmgr team.

   Commencing July 1, the third intake of portmgr-lurkers started active
   duty on portmgr for a four month duration. The next two candidates are
   William Grzybowski and Nicola Vitale.

   This quarter also saw the release of the second quarterly branch,
   namely 2014Q2. This branch was not only built for 10 (as 2014Q1) but
   for 9 as well (both i386 and amd64).

Open tasks:

    1. As previously noted, many PRs continue to languish, we would like
       to see committers dedicate themselves to closing as many as

FreeBSD Release Engineering Team

   URL: http://www.freebsd.org/releases/9.3R/schedule.html
   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,
   and announcing code freezes and maintaining the respective branches,
   among other things.

   In early May, the FreeBSD 9.3-RELEASE cycle entered the code slush
   phase. The FreeBSD 9.3-RELEASE cycle is nearing the final phases, and
   9.3-RC3 builds will be starting soon. 9.3-RC3 is planned to be the
   final release candidate for this release cycle, and at the time of this
   writing, 9.3-RELEASE should be available on schedule.

   Work is ongoing to integrate support for embedded architectures into
   the release build process. At this time, support exists for a number of
   ARM kernels, in particular the Raspberry Pi, BeagleBone, and WandBoard.

   Additionally, work is in progress to produce virtual machine images as
   part of the release cycle, supporting various cloud services such as
   Microsoft Azure, Amazon EC2, and Google Compute Engine.

   This project is sponsored by The FreeBSD Foundation .

Chelsio iSCSI Offload Support

   Contact: Sreenivasa Honnur <shonnur at chelsio.com>

   Building on the new in-kernel iSCSI target and initiator stack released
   in FreeBSD 10.0, Chelsio Communications has begun developing an offload
   interface to take advantage of the hardware offload capabilities of
   Chelsio T4 and T5 10 and 40 gigabit Ethernet adapters.

   The code currently implements a working prototype of offload for the
   initiator side, and target side offload should begin shortly. The code
   will be released under the BSD license and is expected to be completed
   later in the year and be committed to FreeBSD-HEAD, and will likely
   ship in a FreeBSD release in early 2015.

Open tasks:

    1. Complete testing and debugging of the initiator offload.
    2. Start development of target offload.
    3. Create hardware-independent offload APIs, based on experiences with
       target and initiator proof-of-concept implementations.


   URL: http://svnweb.freebsd.org/changeset/base/266581

   Contact: Hans Petter Selasky <hselasky at FreeBSD.org>

   The so-called CUSE4BSD has been imported into the base system of
   FreeBSD-11. CUSE is short for character device in userspace. The CUSE
   library is a wrapper for the devfs(8) kernel functionality which is
   exposed through /dev/cuse. In order to function, the CUSE kernel code
   must either be enabled in the kernel configuration file or loaded
   separately as a module. Follow the commit message link to get more

FreeBSD and Summer of Code 2014

   URL: http://gsoc.FreeBSD.org
   URL: https://wiki.freebsd.org/SummerOfCode2014

   Contact: Gavin Atkinson <gavin at FreeBSD.org>
   Contact: Glen Barber <gjb at FreeBSD.org>
   Contact: Wojciech Koszek <wkoszek at FreeBSD.org>

   FreeBSD received 39 project proposals this year, many of which were of
   a very high standard. After a difficult selection process narrowing
   these down into the slots we had been allocated, a total of 16 projects
   were selected to participate in Google Summer of Code 2014 with

   The projects selected span a wide range of areas within FreeBSD,
   covering both the base system and ports infrastructure, userland and
   kernel. We have students working on firewall optimisation, ports
   packaging tools, embedded systems, debugging infrastructure, improved
   Unicode support, enhancements to the loader and to the installer, and
   several other areas of work. We are just over halfway through the
   allocated time this year, and are very much looking forward to
   integrating code produced by these projects into FreeBSD.

   This is the tenth time FreeBSD has taken part in Google's Summer of
   Code, and we are grateful to Google to have accepted us as a
   participating organisation.

New Automounter

   Contact: Edward Tomasz Napieral/a <trasz at FreeBSD.org>

   Deficiencies in the current automounter, amd(8), are a recurring
   problem reported by many FreeBSD users. A new automounter is being
   developed to address these concerns.

   The automounter is a cleanroom implementation of functionality
   available in most other Unix systems, using proper kernel support
   implemented via an autofs filesystem. The automounter supports a
   standard map format, and will integrate with the Lightweight Directory
   Access Protocol (LDAP) service.

   The project is at the early testing stage. A patch will be released as
   part of a broader call for testing after additional review on some
   critical components (in particular, the autofs filesystem). After
   fixing reported problems, the code will be committed to
   FreeBSD 11-CURRENT. It is expected to ship in the FreeBSD 10.2 release.

   This project is sponsored by The FreeBSD Foundation .

Open tasks:

    1. Fix bad interaction with fts(3).
    2. Debug a problem with Kerberos NFS mounts.


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

   Contact: Baptiste Daroussin <bapt at FreeBSD.org>
   Contact: Bryan Drewery <bryan at FreeBSD.org>
   Contact: Matthew Seaman <matthew at FreeBSD.org>
   Contact: Vsevolod Stakhov <vsevolod at FreeBSD.org>
   Contact: The pkg mailing list <freebsd-pkg at FreeBSD.org>

   pkg(8) is the new package management tool for FreeBSD. It is now the
   only supported package management tool for FreeBSD releases from
   10.0-RELEASE, including the upcoming 9.3-RELEASE. pkg(8) is available
   on all currently supported releases. Support for the legacy pkg_tools
   is due to be discontinued at the beginning of September 2014.

   The release of pkg(8) 1.3 is imminent. This includes major improvements
   in the dependency solver. Now we can:
     * Switch versions of, for example, Perl or PHP and resolve all the
       conflicts with packages that depend on them automatically. No more
       need to manually switch package origins.
     * Deal more gracefully with complex upgrade or install scenarios.
     * Sandbox operations dealing with freshly downloaded data until it
       can be verified as trustworthy by checking the package signature.
     * Deal with provides-and-requires style of dependencies, so for
       example we can say "this package needs to use a web server" and
       allow that dependency to be fulfilled by apache or nginx or any
       other alternative that provides web-server functionality.

   Beyond the next release, we have work in progress on allowing ranges of
   versions in dependency rules and handling a selection of "foreign"
   package repositories, such as CPAN or CTAN or PyPi.

   There are plans to use pkg(8) to package up the base system. Along with
   other benefits, this will allow writing a universal installer: download
   one installer image and from there install any available version of
   FreeBSD, including snapshots.

   We are also intending to use pkg(8) within the ports tree at
   package-build time to handle fulfilling build dependencies. This opens
   the possibility of installing build-dependencies by downloading binary
   packages, which means you can install a package with customized options
   with the minimum amount of time spent compiling anything else.

Open tasks:

    1. We are sorely lacking a comprehensive testing setup. Integrating
       automated regression testing into the development cycle is becoming
       an imperative.
    2. We need testers who can run development versions of pkg in as many
       distinct types of use-cases as possible, and report feedback from
       their experiences to the freebsd-pkg at freebsd.org mailing list or
       our issues list on github.

QEMU bsd-user-Enabled Ports Building

   URL: https://wiki.freebsd.org/QemuUserModeHowTo
   URL: http://dirty.ysv.freebsd.org/
   URL: https://github.com/seanbruno/qemu-bsd-user

   Contact: Stacey Son <sson at FreeBSD.org>
   Contact: Juergen Lock <nox at FreeBSD.org>
   Contact: Sean Bruno <sbruno at FreeBSD.org>

   The ports-mgmt/poudriere-devel port is capable of building ports via an
   emulator. Configuration of the miscellaneous binary image activator is
   required prior to a poudriere-devel run.

   ARMV6, MIPS32 and MIPS64 packages can be produced via full emulation.
   There are several packages that block a full run of builds. They can be
   viewed on the "Status of ports building" link.

   To build packages via emulation, on current or latest stable/10:

   Clone the github repository, and switch to the bsd-user branch. Then

   ./configure --static \
   --target-list="arm-bsd-user i386-bsd-user \
   mips-bsd-user mips64-bsd-user mips64el-bsd-user \
   mipsel-bsd-user ppc-bsd-user ppc64-bsd-user sparc-bsd-user \
   sparc64-bsd-user x86_64-bsd-user"

   gmake; gmake install

   Then set up the binmiscctl tools to do some evil hackery to redirect
   execution of armv6 binaries to qemu:

   binmiscctl add armv6 --interpreter \ "/usr/local/bin/qemu-arm" --magic
   \ "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
   \x00\x28\x00" --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff
   \xff\xff\xff\xff\xfe\xff\xff\xff" --size 20 --set-enabled

   Install poudriere-devel from ports. It knows how to set up things.

   Create a poudriere jail to do all the magic:

   poudriere jail -c -j 11armv632 -m svn -a armv6 \
   -v head

   Now run poudriere against that jail to build all the ports:

   poudriere bulk -j 11armv632 -a

   Nullfs mount the ports tree into the jail:

   mkdir /usr/local/poudriere/jails/11armv632/usr/ports
   mount -t nullfs /usr/ports

   To chroot into the jail:

   mount -t devfs devfs /usr/local/poudriere/jails/11armv632/dev
   chroot /usr/local/poudriere/jails/11armv632/

Open tasks:

    1. PPC on AMD64 emulation. This is a work in progress as there appear
       to be some serious issues running the bsd-user binary on big-endian
       hardware. Justin Hibbits is working on this.
    2. SPARC64 on AMD64 emulation is non-functional and instantly
       segfaults. We are looking for someone to poke at the bits here.
    3. External Toolchain, XDEV support. There is partial support for
       using an AMD64 toolchain that can output binaries for other
       architecture (e.g., using an AMD64 toolchain to build MIPS64
       packages). We are currently tracking a linking issue with
       ports-mgmt/pkg. Thanks to Warner Losh, Baptiste Daroussin, Dimitry
       Andric for poking at bits in here to make the XDEV target useful.
    4. Signal handling. The MIPS/ARMV6 target stills display a failure
       that manifests itself when building devel/p5-Sys-SigAction.
    5. Massive documentation update needed. These modifications actually
       allow chrooting into a MIPS or ARMv6 environment and using native
       toolchains and libraries to prototype software for a target

RPC/NFS and CTL/iSCSI Performance Optimizations

   Contact: Alexander Motin <mav at FreeBSD.org>

   The FreeBSD RPC stack, used as a base for its NFS server, received
   multiple optimizations to improve performance and SMP scalability.
   Algorithmic optimizations reduced processing overhead, while improved
   locking allowed it to scale up to at least 40 processor cores without
   significant lock congestion. Combined with some other kernel
   optimizations, the peak NFS request rate increased by many times,
   reaching up to 600K requests per second on modern hardware.

   The CAM Target Layer (CTL), used as the base for the new kernel iSCSI
   server, also received a series of locking optimizations which allowed
   its peak request rate to increase from ~200K to ~600K IOPS with the
   potential of reaching a rate of 1M requests per second. That rate is
   sufficient to completely saturate 2x10Gbit Ethernet links with 4KB
   requests. For comparison, the port of net/istgt (user-level iSCSI
   server) on the same hardware with an equivalent configuration showed
   only 100K IOPS.

   There is also ongoing work on improving CTL functionality. It was
   already made to support three of four VMware VAAI storage acceleration
   primitives (net/istgt supports 2), while the goal is to reach full VAAI
   support during next months.

   With all these improvements, and earlier improvements in CAM, GEOM,
   ZFS, and a number of other kernel areas coming soon, FreeBSD 10.1 may
   become the fastest storage release ever. ;)

   These projects are sponsored by iXsystems, Inc.


   URL: http://zfsguru.com
   URL: http://zfsguru.com/news/stateoftheproject/2014

   Contact: Jason Edwards <sub.mesa at gmail.com>

   ZFSguru is a multifunctional server appliance with a strong emphasis on
   storage. ZFSguru began as simple web-interface frontend to ZFS, but has
   since grown into a FreeBSD derivative with its own infrastructure. The
   scope of the project has also grown with the inclusion of add-on
   packages that add functionality beyond the traditional NAS
   functionality found in similar product like FreeNAS and NAS4Free.
   ZFSguru aims to be a true multifunctional server appliance that is
   extremely easy to setup and can unite both novice and more experienced
   users in a single user interface. The modular nature of the project
   combats the danger of bloat, whilst still allowing extended
   functionality to be easily deployed.

   Where development in the first quarter of this year brought
   drag-and-drop permissions for Samba and NFS, development in the second
   quarter focused on strengthening the infrastructure of the project. A
   new library and toolkit solution dubbed 'Mesa' is in the works,
   providing a cleaner foundation to the project. A new master server
   providing secure remote services is being setup, to be located in a
   high-speed datacenter. But most importantly, a new system build
   infrastructure has shown great progress and will soon be able to
   provide automated system builds to our users. This not only improves
   the frequency of system releases but also frees much developer time to
   be spent on different areas of the project.

   Furthermore, a new website and forum is being worked on, replacing the
   old-fashioned website that offers only limited functionality. The new
   website will be linked to the server database, providing real-time
   updates about the project.

   In addition, a new platform for collaborative development is in the
   works. A service addon has been created for the GitLab project, which
   is a drop-in replacement of the popular GitHub website. The choice was
   made to host our own solution and not rely on GitHub itself. In
   retrospect this appears to be a good decision. The recent development
   where GitHub removed projects after DCMA takedowns being sent is
   incompatible with the philosophy of free-flow-of-information, which the
   ZFSguru project is a strong proponent of. By hosting our own solution,
   we have avoided any dependency on third party projects.

   It is expected that after the infrastructure of the project has been
   revamped, work on the web-interface itself can continue. New
   functionality such as GuruDB and Service Bulletins provide a tighter
   connection between the server infrastructure and the web-interface. The
   Migration Manager is one of the last remaining features still missing
   in the web-interface. This functionality provides an easy way to
   upgrade the current system by performing a new clean installation, but
   migrate all relevant configuration to the new installation. It also
   allows to backup all system configuration in a single file to be stored
   on a different machine should things go awry.

   A longer version of this status report giving a wider perspective on
   the project can be found at the stateoftheproject link.

PostgreSQL Performance Improvements

   URL: https://www.kib.kiev.ua/kib/pgsql_perf_v2.0.pdf

   Contact: Konstantin Belousov <kib at FreeBSD.org>

   Analysis of the performance of the latest 9.3 version of PostgreSQL on
   FreeBSD-CURRENT has been performed. The issues which prevented good
   scalability on a 40-core machine were determined, and changes
   prototyped which solve the bottlenecks.

   The URL above provides a paper which contains a detailed explanation of
   the issues and solutions, together with a graph demonstrating the
   effects on scalability.

   This project is sponsored by The FreeBSD Foundation.

Running FreeBSD as an Application on Top of the Fiasco.OC Microkernel

   URL: http://en.wikipedia.org/wiki/L4_microkernel_family
   URL: https://wiki.freebsd.org/201407DevSummit/BSDUserspace

   Contact: Ilya Bakulin <ilya at bakulin.de>

   Fiasco.OC belongs to the L4 microkernel family. A microkernel provides
   a bare minimum of services to the applications running on top of it,
   unlike traditional kernels that incorporate complex code like IP stacks
   and device drivers. This allows a dramatic decrease in the amount of
   code running in the privileged mode of the CPU, achieving higher
   security while still providing an acceptable level of performance.

   Running an operating system kernel on top of the microkernel allows
   leveraging any software that was developed for that operating system.
   The OS kernel runs in user-mode side-by-side with other microkernel
   applications such as real-time components. Multiple OSes, each with
   their userland applications, can even be run in parallel, thus allowing
   construction of products where processing of corporate data is strictly
   separated from the processing of private data.

   The project aims to create a port of FreeBSD to the Fiasco.OC
   microkernel, a high performance L4 microkernel developed by TU Dresden.
   Existing ports of OpenBSD and Linux are used as a reference. This will
   allow the use of unique FreeBSD features like ZFS in L4-based projects.

Open tasks:

    1. Finish opensourcing the port of L4OpenBSD/amd64 made by genua mbh.
       This is a work in progress.
    2. Publish the sources of the L4FreeBSD port that is largely based on
       the L4OpenBSD code.
    3. Improve the port, the first task being adopting the pmap(9) module
       to work with L4 microkernel memory allocation services.

SDIO Driver

   URL: https://wiki.freebsd.org/SDIO
   URL: https://github.com/kibab/freebsd/tree/mmccam

   Contact: Ilya Bakulin <ilya at bakulin.de>

   SDIO is an interface designed as an extension of the existing SD card
   standard, which allows the connecting of different peripherals to a
   host with a standard SD controller. Peripherals currently sold on the
   general market include WLAN/BT modules, cameras, fingerprint readers,
   and barcode scanners. Additionally, SDIO is used to connect some
   peripherals in products like Chromebooks and Wandboards. A prototype of
   the driver for the Marvell SDIO WLAN/BT (Avastar 88W8787) module is
   also being developed, using the existing Linux driver as the reference.

   SDIO card detection and initialization already work. Most necessary bus
   methods are implemented and tested.

   The WiFi driver is able to load firmware onto the card and initialize
   it. A rewrite of the MMC stack as a transport layer for the CAM
   framework is in progress. This will allow utilization of the
   well-tested CAM locking model and debug features.

Open tasks:

    1. SDIO stack: finish CAM migration. The initialization of the MMC/SD
       card is implemented in the XPT layer, but cannot be tested with
       real hardware because of the lack of any device drivers that
       implement peripheral drivers and SIMs for CAM MMC. The plan is to
       use a modified version of the BeagleBone Black SDHCI controller
       driver for the SIM and a modified version of mmcsd(4) as a
       peripheral driver.
    2. Marvell SDIO WiFi: connect to the FreeBSD network stack, write the
       code to implement required functions (such as sending/receiving
       data, network scanning and so on).

TMPFS Stability

   Contact: Konstantin Belousov <kib at FreeBSD.org>
   Contact: Peter Holm <pho at FreeBSD.org>

   Extensive testing of tmpfs(5) using the stress2 kernel test suite was
   done. The issues found were debugged and fixed.

   Most of the problems are related to bugs in the interaction of the
   vnode and node lifetime, culminating in e.g., unmount races and dotdot
   lookup bugs.

   This project is sponsored by The FreeBSD Foundation.


   URL: https://wiki.freebsd.org/UEFI
   URL: http://www.freebsd.org/snapshots/

   Contact: Ed Maste <emaste at FreeBSD.org>
   Contact: Nathan Whitehorn <nwhitehorn at FreeBSD.org>

   The Unified Extensible Firmware Interface (UEFI) provides boot- and
   run-time services for x86 and other computers. For the x86 architecture
   it replaces the legacy BIOS. This project will adapt the FreeBSD loader
   and kernel boot process for compatibility with UEFI firmware, found on
   contemporary servers, desktops, and laptops.

   Ed and Nathan completed a number of integration tasks over the past
   three months. Nathan added a first-stage loader, boot1.efi, to support
   chain-loading the rest of the system from a UFS filesystem. This allows
   the UEFI boot process to proceed in a similar fashion as with BIOS
   boot. Nathan also added UEFI support to the FreeBSD installer and
   release image creation script.

   The EFI framebuffer requires the vt(4) system console -- a framebuffer
   driver is not implemented for the legacy syscons(4) console. Ed added
   automatic vt(4) selection to the UEFI boot path.

   Snapshots are now built as dual-mode images, and should boot via both
   BIOS and UEFI. Our plan is to merge the UEFI and vt(4) work to
   stable/10 to appear in FreeBSD 10.1-RELEASE.

   This project is sponsored by The FreeBSD Foundation.

Open tasks:

    1. Document manual installation, including dual-boot configurations.
    2. Implement boot1.efi for ZFS file systems.
    3. Add support for UEFI variables stored in non-volatile memory
    4. Debug boot failures with certain UEFI firmware implementations.
    5. Support secure boot.

Updated vt(4) System Console

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

   Contact: Aleksandr Rybalko <ray at FreeBSD.org>
   Contact: Ed Maste <emaste at FreeBSD.org>
   Contact: Ed Schouten <ed at FreeBSD.org>
   Contact: Warren Block <wblock at FreeBSD.org>

   The vt(4) (aka Newcons) project provides a replacement for the legacy
   syscons system console. It brings a number of improvements, including
   better integration with graphics modes and broader character set

   Since the last report, vt(4) gained the ability to make early driver
   selection. vt(4) selects the best successfully-probed driver before
   most other kernel subsystems are initialized. Also, to facilitate
   migration from syscons(4) to vt(4), multiple virtual terminal
   subsystems in the kernel are now supported. It is controlled by a small
   module with just one kernel environment variable. Users can select the
   virtual terminal system to use by setting kern.vty=sc or kern.vty=vt.

   The GENERIC kernel configuration for the amd64 and i386 platforms now
   includes both syscons(4) and vt(4) by default. This configuration is
   also planned to be in FreeBSD 10.1-RELEASE.

   The project finally received a man page, so now vt(4) is not only the
   project name, but also a link to its documentation. Great thanks to
   Warren Block for that.

   Major highlights:
     * Unicode support.
     * Double-width character support for CJK characters.
     * xterm(1)-like terminal emulation.
     * Support for Kernel Mode Setting (KMS) drivers (i915kms, radeonkms).
     * Support for different fonts per terminal window.
     * Simplified drivers.

   Brief status of supported architectures and hardware:
     * amd64 (VGA/i915kms/radeonkms) -- works.
     * ARM framebuffer -- works.
     * i386 (VGA/i915kms/radeonkms) -- works.
     * IA64 -- untested.
     * MIPS -- untested.
     * PPC and PPC64 -- work, but without X.Org yet.
     * SPARC -- works on certain hardware (e.g., Ultra 5).
     * vesa(4) -- in progress.
     * i386/amd64 nVidia driver -- not supported. VGA should be used (VESA
     * Xbox framebuffer driver -- will be deleted as unused.

   This project is sponsored by The FreeBSD Foundation.

Open tasks:

    1. Implement the remaining features supported by vidcontrol(1).
    2. Write manual pages for vt(4) drivers and kernel interfaces.
    3. Support direct handling of keyboard by the kbd device (without
    4. CJK fonts. (This is in progress).
    5. Address performance issues on some architectures.
    6. Switch to vt(4) by default.
    7. Convert keyboard maps for use with vt(4).
    8. Implement compatibility mode to be able to use single-byte
       charsets/key-codes in vt(4).


   URL: http://svnweb.freebsd.org/base/projects/arm64/

   Contact: Andrew Turner <andrew at FreeBSD.org>

   Arm64 is the name of the in-progress port of FreeBSD to the ARMv8 CPU
   when it is in AArch64 mode. Until recently, all ARM CPU designs were
   32-bit only. With the introduction of the ARMv8 architecture, ARM has
   added a new 64-bit mode. This new mode has been named AArch64.

   Booting FreeBSD on the ARM Foundation Model has made a lot of progress
   since the last status report. An initial pmap implementation has been
   written. With this, FreeBSD is able to enter the Machine Independent
   boot code. The required autoconf functions have been added allowing
   FreeBSD to start scheduling tasks. Finally the cpu_switch and copystr
   functions were added. With these two, FreeBSD will boot to the
   mountroot prompt.

   Work has started on supporting exceptions, including interrupts. This
   will allow more developers to start working on device drivers.

Open tasks:

    1. Finish exception and interrupt handling
    2. Read the Device Tree or ACPI tables from UEFI
    3. Test on real hardware

FreeBSD Python Ports

   URL: https://wiki.FreeBSD.org/Python
   URL: irc://freebsd-python@irc.freenode.net

   Contact: FreeBSD Python Team <python at FreeBSD.org>

   We are pleased to announce the availability of conflict-free Python
   package support across different Python versions based on the
   USES=uniquefiles feature recently introduced to the Ports framework. A
   Python package can be marked as buildable and installable in parallel
   for different Python versions at the same time on the same host. The
   package building tools, however, do not support this feature yet and
   the Python team will work closely with portmgr and the pkg developers
   to enable support on a global ports and packages scale.

   In May and June a huge clean-up operation took place to remove the last
   bits and pieces targeting easy_install. In the beginning of July we
   committed the final changes to remove easy_install support completely
   from the ports framework. This greatly simplifies the infrastructure
   and allows us to modernize and maintain it with less effort.

   We added Python 3.4, removed Python 3.1 after its end of life, updated
   the setuptools ports to version 5.1 and PyPy's development version to
   2.3.1. The latest Python 2.7.8 and an updated setuptools will hit the
   tree shortly.

   Our upstreaming effort continues to produce good outcomes for
   simplifying maintenance and reducing complexity.

   Looking forward, one of the top priorities is to comply with the USES
   framework in the foreseeable future and to roll out a consistent
   maintainer policy for integrating new Python-related ports into the

Open tasks:

    1. Migrate bsd.python.mk to the Uses framework.
    2. Develop a high-level and lightweight Python Ports Policy.
    3. Add support for granular dependencies (for example >=1.0,<2.0).
    4. See what adding pip (Python Package Index) support will require.
    5. Add default QA targets and functions for Python ports
       (TEST_DEPENDS, regression-test, etc.)
    6. More tasks can be found on the team's wiki page (see links).
    7. To get involved, come and say "hi" on IRC and let us know what you
       are interested in!


   URL: http://FreeBSD.kde.org
   URL: http://FreeBSD.kde.org/area51.php

   Contact: KDE/FreeBSD Team <kde at FreeBSD.org>

   The KDE/FreeBSD team has continued to improve the experience of KDE
   software and Qt under FreeBSD.

   During this quarter, the team has kept most of the KDE and Qt ports
   up-to-date, working on the following releases:
     * KDE SC: 4.12.5; Workspace: 4.11.9

   As a result -- according to PortScout -- kde@ has 526 ports (up from
   526), of which 84.63% are up-to-date (down from 98.86%). iXsystems Inc.
   continues to provide a machine for the team to build packages and to
   test updates. iXsystems Inc. has been providing the KDE/FreeBSD team
   with support for quite a long time and we are very grateful for that.

   As usual, the team is always looking for more testers and porters so
   please contact us at kde at FreeBSD.org and visit our home page at
   http://FreeBSD.kde.org. It would be especially useful to have more
   helping hands on tasks such as getting rid of the dependency on the
   defunct HAL project and providing integration with KDE's Bluedevil
   Bluetooth interface.

Open tasks:

    1. Updating out-of-date ports, see PortScout for a list
    2. Removing the dependency on HAL

The Graphics Stack on FreeBSD

   URL: https://wiki.freebsd.org/Graphics
   URL: http://lists.freebsd.org/pipermail/freebsd-announce/2014-July/001570.ht
   URL: http://trillian.chruetertee.ch/ports/browser/trunk

   Contact: FreeBSD Graphics team <x11 at FreeBSD.org>

   We were generally short on time this quarter. We made less progress
   than expected on all fronts.

   The alternate pkg(8) repository, built with WITH_NEW_XORG, is now
   available. This alleviates the need for users to rebuild their ports
   with WITH_NEW_XORG. See the announcement, linked above for further

   Thanks to a contribution from Jan Kokemüller, Radeon 32bit ioctls are
   now working on 64bit hosts. This was tested successfully with Wine and
   StarCraft II on FreeBSD 9.x and 11. This required modifications to
   emulators/i386-wine-devel so that it works with WITH_NEW_XORG, and the
   creation of a new port, libtxc_dxtn, to support the texture compression
   used by StarCraft II. We have not yet had the time to polish
   everything, so this still requires manual steps.

   The DRM generic code update is ready, but it breaks the current i915
   driver. Therefore, the i915 driver must be updated before anything is

   Compared to the previous status report, OpenCL test programs are
   running fine now, thanks to upgrades and fixes to libc++ and Clang. The
   relevant ports are still not ready to hit the ports tree,

Open tasks:

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

Quarterly Status Reports

   Contact: Quarterly Status Report Team <monthly at FreeBSD.org>

   These quarterly status reports help the FreeBSD community stay
   up-to-date with the happenings in and around the project. Updates from
   FreeBSD teams, new features being developed in- or out-of-tree,
   products derived from FreeBSD, and FreeBSD events are all welcome
   additions to the status reports.

   The Monthly team has been busy since the last report, with longtime
   organizer Gábor Páli having stepped down from the team -- thank you
   Gábor for all your hard work! This has left something of a void in the
   preparation of this report, for which the call for items was issued
   quite late. To help fill the void, Warren Block and Benjamin Kaduk have
   been added to the monthly@ team, joining Glen Barber, Gavin Atkinson,
   Ed Maste, and the rest of the team in preparing this report. Special
   thanks to Glen for doing most of the work while simultaneously getting
   9.3-RELEASE out the door!

   The next cycle is sooner than you think! The deadline for submitting
   entries for the Q3 report is October 7th, 2014.

   This project is sponsored by The FreeBSD Foundation.

Open tasks:

    1. Submit reports for Q42014 to monthly at FreeBSD.org!

FreeBSD Host Support for OpenStack and OpenContrail

   URL: http://www.openstack.org
   URL: http://www.opencontrail.org
   URL: https://github.com/Semihalf/openstack-devstack
   URL: https://github.com/Semihalf/openstack-nova
   URL: https://github.com/Semihalf/contrail-vrouter
   URL: https://blueprints.launchpad.net/nova/+spec/freebsd-compute-node

   Contact: Grzegorz Bernacki <gjb at semihalf.com>
   Contact: Michal Dubiel <md at semihalf.com>
   Contact: Dominik Ermel <der at semihalf.com>
   Contact: Rafal Jaworowski <raj at semihalf.com>

   OpenStack is a cloud operating system that controls large pools of
   compute, storage, and networking resources in a datacenter.

   OpenContrail is a network virtualization (SDN) solution comprising
   network controller, virtual router, and analytics engine, which can be
   integrated with cloud orchestration systems like OpenStack or

   The goal of this work is to enable FreeBSD as a fully supported compute
   host for OpenStack using OpenContrail virtualized networking. The main
   areas of development are:
     * Libvirt hypervisor driver for bhyve.
     * Support for bhyve (via libvirt compute driver) and the overall
       FreeBSD platform in nova-compute.
     * OpenContrail vRouter (forwarding plane kernel module) port to
     * OpenContrail Agent (network controller node) port to FreeBSD.
     * Integration and performance optimizations.

   Since the last report the following items have been completed, which
   allow for a working demo of an OpenStack compute node on a FreeBSD host
   using OpenContrail for network virtualization:
     * Port of the OpenContrail vRouter kernel module for FreeBSD (MPLS
       over GRE mode only)
     * Port of the OpenContrail Agent for FreeBSD
     * FreeBSD version of a Devstack installation/configuration script
       with support for the OpenContrail solution (Compute node components

   A demo was presented at the DevSummit during BSDCan2014 in Ottawa.
   Also, a meetup regarding the subject was organized in Krakow, Poland.

   Work on this project is sponsored by Juniper Networks.

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 published our third issue of the FreeBSD Journal. We have over 2700
   subscriptions so far. We continued working on the digital edition,
   which will allow subscribers to read the magazine in different web
   browsers, including those than run on FreeBSD. This will be available
   for the July/August issue of the Journal.

   We hired Anne Dickison, on a freelance basis, as our new marketing
   director, to help us promote the Foundation and Project.

   The annual board meeting was held in Ottawa, Canada, in May. Directors
   and officers were elected, and we did some long-term planning. We
   worked on our vision, core values, project road mapping, and our
   near-term goals. We also met with the core team to discuss roles and
   responsibilities, project roadmapping, and what we can do to help the
   Project more.

   We were a Gold+ sponsor for BSDCan, May 16-17 and provided 7 travel
   grants for developers to attend the conference. We also were the
   sponsor for both the developer and vendor summits.

   Justin Gibbs gave a FreeBSD presentation at a FreeBSD user's internal
   technology summit. Company visits like this help users understand the
   Project structure better and gives us a chance to communicate what
   FreeBSD people are working on as well as learn what different companies
   are doing with FreeBSD, as well as what they'd like to see supported.
   We can then help facilitate collaboration between the companies and
   FreeBSD developers.

   We were represented at Great Wide Open, April 2-3 (greatwideopen.org),
   Texas LinuxFest, June 13-14 (texaslinuxfest.org), and SouthEast
   LinuxFest, June 20-22 (southeastlinuxfest.org).

   Hardware was purchased to support an upgrade at Sentex. A new
   high-capacity 1Gbps switch was deployed to allow for more systems to be
   added to the test lab. The main file server and development box was
   upgraded to allow more users in the lab simultaneously.

   We purchased hardware, including package builders, and a larger server
   to allow NYI to be a full replica of all Project systems, comparable to
   what is in place at Yahoo Inc. and ISC.

   We worked with our lawyer to create an NDA between the Foundation and
   individuals for third party NDAs. This allows developers who need
   access to proprietary documents, to go through the Foundation, via an
   NDA for access.

   FreeBSD Foundation Systems Administrator and Release Engineer, Glen
   Barber, continued work on producing regularly-updated FreeBSD/arm
   snapshots for embedded devices, such as the Raspberry Pi, ZedBoard, and

   In addition to producing weekly development snapshots from the head/
   and stable/ branches, with feedback and help from Ed Maste, Glen
   finished work to produce release images that will, by default, provide
   debugging files for userland and kernel available on the
   FreeBSD Project FTP mirrors. Note that the debugging files will not be
   included on the bootonly.iso, disc1.iso, or dvd1.iso images due to the
   size of the resulting images.

   Foundation staff member Konstantin Belousov completed an investigation
   into poor performance of PostgreSQL on FreeBSD. This uncovered
   scalability problems in the FreeBSD kernel, and changes to address
   these issues are in progress.

   Some previously completed Foundation-sponsored projects received
   enhancements or additional work. The ARM superpages project was
   completed last year, but is now enabled by default in FreeBSD-CURRENT.
   Many stability fixes and enhancements have been committed to the
   in-kernel iSCSI stack. The iSCSI project was released in FreeBSD 10.0.
   Many stability fixes and enhancements have been committed and will be
   included in FreeBSD 10.1.

   Work continues on the Foundation-sponsored autofs automount daemon,
   UEFI boot support, the updated vt(4) system video console, virtual
   machine images, and the Intel graphics driver update.
   Foundation-sponsored work resulted in 226 commits to FreeBSD over the
   April to June period.

Version: GnuPG v2


More information about the freebsd-announce mailing list