[FreeBSD-Announce] FreeBSD Quarterly Status Report, January-March 2013

Gabor Pali pgj at freebsd.org
Sun May 12 17:57:28 UTC 2013

FreeBSD Quarterly Status Report, January-March 2013


   This report covers FreeBSD-related projects between January and March
   2013. This is the first of four reports planned for 2013.

   Highlights from this status report include the busy preparations of
   8.4-RELEASE, restoration of binary package building, steady progress
   of several porting efforts, like work on the FreeBSD ports of xorg,
   GNOME, KDE, and Xfce, bringing FreeBSD to Cubieboard and Hackberry
   boards, development of ARM and AMD GPU support, improving
   performance of UFS/FFS and callouts, and introducing a multipath TCP
   implementation for the network stack.

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

   The deadline for submissions covering the period between April and
   June 2013 is July 7th, 2013.


     * FreeNAS
     * Kernel Information in Process Core Dumps
     * Native iSCSI Stack

FreeBSD Team Reports

     * FreeBSD Bugmeister Team
     * FreeBSD Core Team
     * FreeBSD Port Managers
     * FreeBSD Postmaster Team
     * FreeBSD Release Engineering Team


     * AMD GPU Kernel Mode-Setting (KMS) Support
     * Atomic "close-on-exec"
     * callout(9) Improvements
     * Multipath TCP (MPTCP) for FreeBSD
     * racct: Block IO Accounting
     * Read-only Port of NetBSD's UDF File System
     * TCP-AO Authentication Option
     * UFS/FFS Performance Work


     * Improving the Documentation Project Infrastructre
     * The entities Documentation Branch
     * The FreeBSD Japanese Documentation Project


     * FreeBSD on Cubieboard
     * FreeBSD/arm Superpages for ARMv7
     * FreeBSD/ARM Toolchain Improvements


     * FreeBSD Haskell Ports
     * GNOME/FreeBSD
     * KDE/FreeBSD
     * PyPy
     * Wine32 on FreeBSD/amd64
     * Xfce/FreeBSD
     * xorg on FreeBSD


     * BXR.SU -- Super User's BSD Cross Reference
     * mdoc.su -- Short Manual Page URLs

AMD GPU Kernel Mode-Setting (KMS) Support

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

   Contact: Jean-Sébastien Pédron <dumbbell at FreeBSD.org>
   Contact: J.R. Oldroyd <jr at opal.com>
   Contact: Konstantin Belousov <kib at FreeBSD.org>

   The project progressed well since February:

     * Konstantin committed is TTM port to 10-CURRENT.
     * With the help of John Baldwin (jhb) and Andriy Gapon (avg), the
       Video BIOS situation greatly improved: the radeonkms driver reads
       the BIOS shadow copy if the video card is the primary one, or
       query the PCI expansion ROM otherwise. In the end, this code
       will be probably committed to the PCI driver so that other video
       drivers benefit from it.
     * Andriy also reported several problems with the I2C code. Now that
       they are fixed, the monitors plugged into DVI and HDMI connectors
       are detected and their EDID is read correctly. VGA connector is
       not tested so far.
     * There is a locking problem in either TTM or the Radeon driver
       which prevents OpenGL from working properly. Jean-Sébastien is
       currently tracking this down.
     * J.R. Oldroyd started to work on a 9-STABLE backport of the driver
       which is now working quite well. He had to backport some features
       from the VM which may need further refinement by the VM folks.

   Yakaz lended Jean-Sébastien a computer which allows him to test a
   RV630-based discrete card and, in the future, other PCIe cards.
   Several users already kindly tested the driver. Big thanks to all
   those contributors!

   In its current state, the driver allows to have a simple X session
   (no OpenGL), run common applications, watch movies, change the
   resolution and enable additional monitors with xrandr(1). The most
   blocking issue now is the OpenGL deadlock which prevents to run
   modern compositors/desktop environment, games and WebGL demos. We
   are not ready for a "Call For Testers" yet.

Open tasks:

    1. Test multiple cards configurations for Video BIOS issues,
       especially Intel integrated card + Radeon discrete card, and AMD
       integrated card (IGP) + Radeon discrete card. No need to check
       configurations with one shared connector though, it is not
       supported right now.

Atomic "close-on-exec"

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

   Contact: Jilles Tjoelker <jilles at FreeBSD.org>

   If threads or signal handlers call fork() and exec(), file
   descriptors may be passed undesirably to child processes, which may
   lead to hangs (if a pipe is not closed), exceeding the file
   descriptor limit and security problems (if the child process has
   lower privilege). One solution is various new APIs that set the
   "close-on-exec" flag atomically with allocating a file descriptor.
   Some existing software will use the new features if present or will
   even refuse to compile without them.

   Various parts have been present for some time.

   In first quarter of 2013, extensions to recvmsg(), socket(),
   socketpair() and posix_openpt() have been added.

BXR.SU -- Super User's BSD Cross Reference

   URL: http://bxr.su/

   Contact: Constantine A. Murenin <cnst++ at FreeBSD.org>

   Super User's BSD Cross Reference (BXR.SU) is a new source-code search
   engine that covers the complete kernel and non-GNU userland source
   trees of FreeBSD, NetBSD, OpenBSD, and DragonFly BSD.

   BXR.SU is optimised to be very fast, has daily updates of all the
   trees, and also acts as a deterministic URL shortener.

   BXR.SU is based on an OpenGrok fork, but it is more than just
   OpenGrok. We have fixed a number of annoyances, eliminated features
   that just never worked right from the outright, and provided
   integration with tools like CVSweb (including great mirrors like
   allbsd.org), FreeBSD's ViewVC (SVN), as well as GitHub and Gitweb
   from git.freebsd.your.org, plus a tad of other improvements,
   including a complete rewrite of an mdoc parser. Last, but definitely
   not least, is an extensive set of nginx rewrite rules that makes it
   a breeze to use BXR.SU as a deterministic URL compactor for
   referencing BSD source code. For example, the
   http://bxr.su/f/kern/sched_ule.c URL will automatically redirect to
   http://bxr.su/FreeBSD/sys/kern/sched_ule.c through nginx.

   Note that according to the release schedule of BXR.SU, there is no
   IPv4 glue until 2013-04-24; otherwise, the service is available via
   both IPv4 and IPv6. See the 2013-04-01 announcement on the
   freebsd-hackers mailing list for more details.

Open tasks:

    1. Find up-to-date git repositories (served with Gitweb) of NetBSD
    and OpenBSD.
    2. Find a Gitweb mirror of FreeBSD that is faster than GitHub and

callout(9) Improvements

   URL: http://people.freebsd.org/~davide/asia/callout_paper.pdf
   URL: http://people.freebsd.org/~davide/asia/calloutng.pdf
   URL: http://svnweb.freebsd.org/base?view=revision&revision=247777

   Contact: Davide Italiano <davide at FreeBSD.org>
   Contact: Alexander Motin <mav at FreeBSD.org>

   In FreeBSD, timers are provided by the callout facility, which allows
   to register a function with an argument to be called at specified
   future time. The subsystem suffered of some problems, such as the
   impossibility of handling high-resolution events or its inherent
   periodic structure, which may lead to spurious wakeups and higher
   power consumption. Some consumers, such as high-speed networking,
   VoIP and other real-time applications need a better precision than
   the one currently allowed. Also, especially with the ubiquity of
   laptops in the last years, the energy wasted by interrupts waking
   CPUs from sleep may be a sensitive factor. Recent changes in the
   subsystem addressed those long-standing issues as well as introduced
   a new programming interface to take advantage of the new features.

Open tasks:

    1. Evaluating if it is worth to migrate any of the other callout(9)
       consumers to the new interface.
    2. Move callout consumers still using the legacy
    timeout()/untimeout() interface to callout_*() in order to get rid
    of redundant code and clean up KPI.

FreeBSD Bugmeister Team

   Contact: Eitan Adler <eadler at FreeBSD.org>
   Contact: Gavin Atkinson <gavin at FreeBSD.org>
   Contact: Oleksandr Tymoshenko <gonzo at FreeBSD.org>

   The FreeBSD Bugmeister Team are continuing to evaluate options for
   alternate bug trackers and have narrowed their choices to two
   possibilities: Bugzilla and roundup.

   The number of non-ports PRs have remained relatively static over the
   last three months, with as many coming in as being closed. The number
   of ports PRs have increased recently, largely due to the ports freeze
   for the upcoming 8.4-RELEASE.

   The Bugmeister team continue work on trying to make the contents of
   the GNATS PR database cleaner, more accessible and easier for
   committers to find and resolve PRs, by tagging PRs to indicate the
   areas involved, and by ensuring that there is sufficient info within
   each PR to resolve each issue.

   As always, anybody interested in helping out with the PR queue is
   welcome to join us in #freebsd-bugbusters on EFnet. We are always
   looking for additional help, whether your interests lie in triaging
   incoming PRs, generating patches to resolve existing problems, or
   simply helping with the database housekeeping (identifying duplicate
   PRs, ones that have already been resolved, etc). This is a great way
   of getting more involved with FreeBSD!

Open tasks:

    1. Finalize the decision of which new bug tracker to use.
    2. Get more users involved with triaging PRs as they come in.
    3. Assist committers with closing PRs.

FreeBSD Core Team

   Contact: Core Team <core at FreeBSD.org>

   At the end of 2012, the Core Team approved using Google Analytics on
   the Project web site to enable the Documentation Engineering Team to
   collect statistics on its usage for better profiling. In the first
   quarter of 2013, the Core Team worked with the Documentation
   Engineering Team to finalize the associated policies.

   Due to some debates around the political correctness of quotes added
   for the fortune(6) utility, the corresponding data file has been
   removed from the base system in -CURRENT.

   In light of the security incident, the liaison role between the Core
   Team and the Security Team has been restored, with Gavin Atkinson
   assuming this role. The Core Team work hard on resolving the current
   situation of the binary package building cluster and the associated
   security problems in tight cooperation with the Ports Management
   Team, Cluster Administators, and the FreeBSD Foundation Board. The
   compromise page is kept updated on the results.

   The FreeBSD Project submitted an application for Google Summer of
   Code this year again.

   There was access granted for 2 new committers and 1 commit bit was
   taken for safekeeping in this quarter.

FreeBSD Haskell Ports

   URL: http://wiki.freebsd.org/Haskell
   URL: https://github.com/freebsd-haskell/freebsd-haskell/

   Contact: Gábor Páli <pgj at FreeBSD.org>
   Contact: Ashish Shukla <ashish at FreeBSD.org>

   We are proud to announce FreeBSD Haskell Team has updated existing
   ports to their latest stable versions. We also added number of new
   ports, which brings the count of Haskell ports in FreeBSD ports tree
   to more than 400, featuring many popular software, e.g. xmonad,
   git-annex, pandoc or various web framework implementations. All of
   these updates will be available as part of the upcoming 8.4-RELEASE.
   We also came to know that Haskell ports are also being used
   successfully on DragonFlyBSD's dports tree.

   In our development repository, there was some optional support added
   for LLVM-based code generation using the GHC LLVM backend. This works
   mostly on FreeBSD too, though some of the ports would need fixing so
   it is still considered experimental.

Open tasks:

    1. Try to build GHC with clang (as system compiler).
    2. Commit pending Haskell ports to the FreeBSD ports tree.
    3. Add more ports to the Ports Collection.

FreeBSD on Cubieboard

   Contact: Ganbold Tsagaankhuu <ganbold at FreeBSD.org>
   Contact: Oleksandr Tymoshenko <gonzo at FreeBSD.org>

   Initial support of Allwinner A10 SoC is committed to -CURRENT.
   FreeBSD is now running on boards such as Cubieboard, Hackberry and
   it supports following peripherals:
     * USB EHCI
     * GPIO

Open tasks:

    1. Get EMAC Ethernet driver working. Need more help from network
       driver experts.
    2. Implement more drivers.

FreeBSD Port Managers

   URL: http://www.FreeBSD.org/ports/
   URL: http://www.freebsd.org/doc/en/articles/contributing-ports/
   URL: http://portsmon.freebsd.org/
   URL: http://www.freebsd.org/portmgr/
   URL: http://blogs.freebsdish.org/portmgr/
   URL: http://www.twitter.com/freebsd_portmgr/
   URL: http://www.facebook.com/portmgr

   Contact: Thomas Abthorpe <portmgr-secretary at FreeBSD.org>
   Contact: Port Management Team <portmgr at FreeBSD.org>

   The ports tree contains approximately 24,300 ports, while the PR
   count still is close to 1600.

   In the first quarter we added 4 new committers, took in 1 commit bit
   for safe keeping, and re-instated 1 commit bit.

   In February, Mark Linimon (linimon) stepped down from his duties in
   the team. Mark had been the longest serving member of the team. Mark
   had spent many long hours refactoring and documenting the portbuild
   software to ensure that pointyhat services could be restored.

   After a security review, redports.org was turned back on, restoring
   Tinderbox services to contributors, along with post commit QATs. In
   addition, pointyhat infrastructure had also undergone a review and
   work begain on restoring the package build system.

   Erwin Lansing (erwin) and Martin Wilke (miwi) took on the principle
   roles of getting the portbuild software installed and running on
   pointyhat. As a result of all their hard work, portmgr@ was finally
   able to resume doing -exp runs, preparing packages for the upcoming
   8.4 release, as well as getting a set of 9.1 packages retroactively

   After many long years of being the defacto standard for the Project,
   CVS support for the ports tree officially ended on February 28.

   The ports tree was tagged with RELEASE_7_EOL, to coincide with the
   end of life for FreeBSD 7.X.

   Beat Gaetzi (beat) stepped down from his duties on portmgr@ in March.
   Among his notable contributions, was the task of migrating the Ports
   Tree from the old CVS repo to Subversion.

   Bryan Drewery (bdrewery) joined the Ports Management team in March,
   bringing with him his wealth of knowledge and skill from maintaining
   portupgrade, portmaster, assisting with pkgng, as well as
   co-developing poudriere.

Open tasks:

    1. Most ports PRs are assigned, we now need to focus on testing,
       committing and closing.

FreeBSD Postmaster Team

   Contact: David Wolfskill <postmaster at FreeBSD.org>

   In the first quarter of 2013, the FreeBSD Postmaster Team has
   implemented the following items that may be interest of the general

     * Changes in configuration of Mailman-managed lists: allow to
       accept the application/pkcs7-signature MIME type (in addition to
       the application/x-pkcs7-signature MIME type), thus permitting
       S/MIME signatures on list mail.
     * New lists: freebsd-ops-announce -- announcements of
       infrastructure issues, and freebsd-pkg -- discussion of binary
       package management and package tools.

FreeBSD Release Engineering Team

   URL: http://www.freebsd.org/releases/8.4R/schedule.html

   Contact: FreeBSD Release Engineering Team <re at FreeBSD.org>

   FreeBSD 8.4-RC1 just got out the door and we are planning RC2. A
   couple of critical fixes have come in that will be included in RC2.
   The schedule has slipped about 10 days so far. We are expecting the
   final release by the end of April. Packages for 8.4 have been
   provided by a fully operational package building cluster.

FreeBSD/arm Superpages for ARMv7

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

   Contact: Zbigniew Bodek <zbb at semihalf.com>
   Contact: Grzegorz Bernacki <gjb at semihalf.com>
   Contact: Rafał Jaworowski <raj at semihalf.com>

   ARM architecture is more and more prevailing, not only in the mobile
   and embedded space. Among the more interesting industry trends
   emerging in the recent months has been the "ARM server" concept.
   Some top-tier companies started developing systems like this already
   (Dell, HP).

   Key to FreeBSD success in these new areas are sophisticated features,
   among them are superpages.

   The objective of this project is to provide FreeBSD/arm with the
   superpages support, which will allow for efficient use of TLB
   translations (enlarge TLB coverage), leading to improved performance
   in many applications and scalability. Indicated functionality is
   intended to work on ARMv7-based processors, however compatibility
   with ARMv6 will be preserved.

   Current support status:
     * Port of the pv_entry allocator.
     * Switch to "AP[2:1]" access permissions model.
     * PTE-based, page-referenced/modified emulation.
     * Fixes regarding page replacement strategy.
     * Code optimizations and bug fixes.

   Next steps:
     * Dirty pages management.
     * Gradual integration to FreeBSD -CURRENT.
     * Further pmap optimizations.
     * Fragmentation control management.
     * Testing and benchmarking.

Open tasks:

    1. Support for multiple page sizes.
    2. Implementation of page promotion, demotion and eviction

FreeBSD/ARM Toolchain Improvements

   Contact: Andrew Turner <andrew at FreeBSD.org>

   Clang has been made the default compiler on ARM. A number of issues
   with LLVM and clang have been found, reported, and fixed upstream.

   An issue where some ARM EABI applications compiled with clang crash
   has been reported upstream with a patch and will be brought into the
   FreeBSD tree when it is accepted. The only other issue blocking
   moving to the ARM EABI is C++ exceptions fail to work correctly with
   shared objects. This will need us to either import libunwind or
   implement the functions libgcc_s requires to find the correct unwind

Open tasks:

    1. Fix exception handling for EABI.


   URL: http://www.FreeNAS.org/

   Contact: Alfred Perlstein <alfred at FreeBSD.org>
   Contact: Josh Paetzel <jpaetzel at FreeBSD.org>

   FreeNAS 8.3.1-RELEASE-p2 will hit Sourceforge the second week of
   April, and should end up as the last FreeNAS release based on
   FreeBSD 8.X It's currently the only Free Open Source NAS product
   available with any form of ZFS encryption (provided by GELI).

Open tasks:

    1. The team is hard at work on getting a FreeBSD 9.X-based release
    of FreeNAS ready. Currently there are several nightly snapshots
    2. Add HAST to the webinterface.
    3. Migrate to NFSv4.
    4. Integrate foundation sponsored kernel iSCSI target.


   URL: http://www.freebsd.org/gnome
   URL: http://www.freebsd.org/gnome/docs/develfaq.html
   URL: http://www.marcuscom.com:8080/viewvc/viewvc.cgi/marcuscom
   URL: https://github.com/jlmess77/mate-ports

   Contact: FreeBSD GNOME team <gnome at FreeBSD.org>

   The GNOME/FreeBSD Team has recently merged Glib 2.34, Gtk+ 2.24.17
   and Gtk+ 3.6.4 into ports, the C++ bindings also have got updates. In
   additional "low-level" GNOME ports received updates, like libsoup,
   gobject-introspection, atk and vala for example. The telepathy stack
   and empathy where also updated.

   The USE_GNOME macro has received support for :run and :build targets
   thanks to Jeremy Messenger (mezz). Currently only libxml2 and libxslt
   support these targets.

   USE_GNOME=pkgconfig is being deprecated in favor of
   USE_PKGCONFIG=build. The former also adds a run dependency on
   pkg-config, which is not required. A first pass was done to get rid
   of this in the Glib update to 2.34. In cooperation with the X11
   Team, the usage of USE_GNOME=pkgconfig in X components will be
   removed. After the fallout from this is handled and stranglers are
   converted, the USE_GNOME option will be removed.

   In addition USE_GNOME=gnomehack is deprecated and should not be used.
   Please replace it with USES=pathfix.

   The GNOME development repository has switched from CVS to SVN. CVS
   will not get any more updates. Uses can get a new version of the
   marcusmerge script that supports SVN from its home page, and should
   remove the old CVS checkout "ports" dir.

     * SVN anonymous root: svn://creme-brulee.marcuscom.com/ or
       svn://sushi.marcuscom.com/ (IPv6)
     * ViewVC: http://www.marcuscom.com:8080/viewvc/viewvc.cgi/marcuscom

   On-going efforts:

     * glib 2.36, pango 1.34.0, gtk 3.8.0 and gobject-introspection
       1.36.0 where updated in the GNOME development repository.
     * Gustau Perez i Querol stepped up and started work on updating the
       old GNOME 3.4 ports to 3.6. At the moment of writing these are
       not available in the GNOME development repository just yet. For
       his efforts, he was awarded a FreeBSD GNOME team membership.
     * Jeremy Messenger (mezz) has completed Mate 1.6 which will be
       arriving in ports near you when deemed stable enough.

   If you want to help with keeping the documentation updated or helping
   out in other ways, even if it only parts for the Glib/Gtk/GNOME stack
   you are interested in, please contact us!

Open tasks:

    1. Update the FreeBSD.org/gnome website, in particular the developer
       information about USE_GNOME, maybe put that section in the
    Porter's Handbook instead.
    2. Merge more updated ports from MC to ports.
    3. Testing latest Glib/Gtk releases with existing ports, and import
    it into ports when it is ready.
    4. After porting GNOME 3.6 run tests and fix bugs.

Improving the Documentation Project Infrastructre

   URL: http://svnweb.freebsd.org/doc/projects/xml-tools/

   Contact: Gábor Kövesdán <gabor at FreeBSD.org>

   There is an on-going work to improve the documentation infrastructure
   and modernize our documentation toolchain. The work can be found in
   the xml-tools branch and is very near to completion. The improvements
   include the following:

     * Upgrade to DocBook 4.5.
     * Use XSLT instead of DSSSL to render XHTML-based output.
     * Generate PDF from PS and simplify image processing.
     * Fix make lint and validate the whole documentation set.
     * Fix rendering of TOC elements.
     * Fix misused link elements that resulted in a corrupt rendering.
     * Use more human-friendly publication data and release info
     * Add support for XInclude in DocBook documents.
     * Add support for profiling with attributes.
     * Add support for Schematron constraints.
     * Add experimental epub support.
     * Add experimental support for XSL-FO-based printed output.
     * Clean up obsolete SGML constructs.
     * Clean up catalogs.
     * Drop HTML Tidy since it is not needed any more.

   The changes eliminate some dependencies and switch the doc repository
   to a real XML toolchain with proper validation and more advanced
   rendering tools. The only exceptions are Jade and the DSSSL
   stylesheets, which are still needed for printed output.

Open tasks:

    1. Fix rendering problems with images in printed formats.
    2. Update the Documentation Primer to reflect changes.


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

   Contact: KDE FreeBSD <kde at FreeBSD.org>

   The KDE/FreeBSD Team is very proud to have Schaich Alonso (aschai)
   joining the team. Welcome!

   The KDE/FreeBSD Team have continued to improve the experience of KDE
   software and Qt under FreeBSD. The latest round of improvements

     * Fix problems establishing UDP connections.

   The Team have also made many releases and upstreamed many fixes and
   patches. The latest round of releases include:

     * KDE SC: 4.9.5, 4.10.1 (ports)
     * Qt: 5.0.0 (area51) and 4.8.4 (ports)
     * PyQt: 4.9.6 (ports); QScintilla 2.7 (ports); SIP: 4.14.2 (area51)
       and 4.14.3 (ports)
     * KDevelop: 4.4.1 (ports); KDevPlatform: 1.4.1 (ports)
     * Calligra: 2.5.5, 2.6.2 (ports)
     * Amarok: 2.7.0
     * CMake:
     * Digikam (and KIPI-plugins): 3.1.0 (area51)
     * QtCreator: 4.6.1 (ports)
     * KDE Telepathy 0.6.0 (area51)
     * many smaller ports

   As a result -- according to PortScout -- we have 431 ports, of which
   93.5% (from 91%) are up-to-date.

   The Team are always looking for more testers and porters so please
   contact us and visit our home page.

Open tasks:

    1. Updating out-of-date ports, see PortScout for a list.

Kernel Information in Process Core Dumps

   Contact: Mikolaj Golub <trociny at freebsd.org>

   When doing postmortem analysis of a crashed process it is sometimes
   very useful to have kernel information about the process at the
   moment of the crash, like open file descriptors or resource limits.
   For a live process this information can be obtained via sysctl(3)
   interface e.g. using procstat(1).

   The aim of the project is to add additional notes to a process core
   dump, which include process information from the kernel at the moment
   of the process crash, teach libprocstat(3) to extract this
   information and make procstat(1) use this functionality.

   At the moment all necessary code changes are committed to HEAD and
   are going to be merge to stable/9 in 1 month.

mdoc.su -- Short Manual Page URLs

   URL: http://mdoc.su/
   URL: http://nginx.conf.mdoc.su/mdoc.su.nginx.conf
   URL: https://github.com/cnst/mdoc.su

   Contact: Constantine A. Murenin <cnst++ at FreeBSD.org>

   mdoc.su is a deterministic URL shortener for BSD manual pages,
   written entirely in nginx.conf.

   Since the original announcement, OS version support has been added
   (e.g. /f91/ and /FreeBSD-9.1/ etc.), as well as dynamic multi-flavour
   web-pages with multiple links (e.g. http://mdoc.su/f,d/ifnet.9 and
   http://mdoc.su/-/mdoc), which even let you specify the versions too
   (e.g. http://mdoc.su/f91,n60,o52,d/mdoc).

   The source code for the whole site is available under a BSD licence.

Open tasks:

    1. Fork it on GitHub (see links)!

Multipath TCP (MPTCP) for FreeBSD

   URL: http://caia.swin.edu.au/urp/newtcp/mptcp/tools.html
   URL: http://caia.swin.edu.au/newtcp/mptcp/
   URL: http://caia.swin.edu.au/reports/130424A/CAIA-TR-130424A.pdf
   URL: https://pub.allbsd.org/FreeBSD-snapshots/

   Contact: Nigel Williams <njwilliams at swin.edu.au>
   Contact: Lawrence Stewart <lastewart at swin.edu.au>
   Contact: Grenville Armitage <garmitage at swin.edu.au>

   We have been working to create a BSD-licensed implementation of
   Multipath TCP -- a set of TCP extensions that allow for transparent
   multipath operation with multiple IP addresses as specified in
   experimental RFC6824.

   We made our first v0.1 public release on 2013-03-11 and recently
   released v0.3 on 2013-04-16. The code is currently considered to be
   of alpha quality. We are working towards pushing the code into a
   FreeBSD Subversion repository project branch to continue the on-going
   development effort in a more publicly accessible location. As part of
   this move, we hope to begin releasing regular snapshot installer ISOs
   of the MPTCP project branch courtesy of Hiroki Sato and the
   allbsd.org daily snapshot infrastructure.

   We are about to release a CAIA technical report 130424A entitled
   "Design Overview of Multipath TCP version 0.3 for FreeBSD 10" on
   2013-04-24 which provides a high-level design and architecture
   overview of the v0.3 code release.

   Going forward, we expect to continue development and release
   additional technical reports and academic papers covering topics
   such as performance analysis and multipath congestion

Open tasks:

    1. The code is currently of alpha quality so we welcome all testing
       feedback, but please familiarize yourself with the README file
    and "Known Limitations" section in particular before jumping in.

Native iSCSI Stack

   URL: https://wiki.freebsd.org/Native%20iSCSI%20target

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

   Focus of the project was extended to also include a new iSCSI
   initiator. Compared to the old one, it is more reliable, much more
   user-friendly, and somewhat faster. It uses exactly the same
   configuration file format as the old one to make migration easier.

   As for the target side, it was verified to work properly against
   major initiators (FreeBSD, Linux, Solaris, Windows and VMWare ESX).

   This project is being sponsored by FreeBSD Foundation.

Open tasks:

    1. RDMA support, for both the target and the initiator.
    2. Performance optimization.


   URL: http://wiki.FreeBSD.org/PyPy

   Contact: David Naylor <dbn at FreeBSD.org>

   PyPy has been successfully updated to 2.0-beta1 with 2.0-beta2
   finishing translating and other tests. Many major changes were made
   to the PyPy port fr the 2.0-beta1 release, these include:

     * Reworking the build script.
     * Optionally use pypy (when available) for self-translating.
     * Refine memory checks.
     * Fix the test target.

   Although the port is in a healthy state; PyPy on FreeBSD has some
   rough edges (see make test for examples of roughness).

Open tasks:

    1. Fix failed unit tests.
    2. Integrate PyPy into bsd.python.mk.
    3. See the project page for more items.

racct: Block IO Accounting

   URL: https://wiki.freebsd.org/RudolfTomori/IOLimits

   Contact: Rudolf Tomori <rudot at FreeBSD.org>

   This project adds the block IO access accounting to the racct/rctl
   resource limiting framework, a working prototype implementation is

Read-only Port of NetBSD's UDF File System

   URL: https://github.com/williamdevries/UDF

   Contact: Will DeVries <william.devries at gmail.com>

   An initial read-only port of NetBSD's UDF file system has been
   largely completed. (The UDF file system is often used on CD, DVD and
   Blu-Ray discs.) This port provides a number of advantages over
   FreeBSD's current UDF implementation, which include:

     * Support for version 2.60 of the UDF file system specification.
       FreeBSD's current implementation only partially supports version
       1.5 of the standard, which was released in 1997. Since Windows
       and other systems support newer version of this file system, our
       users are left without the ability to read some media written by
       these systems. In addition, Blu-Ray discs are commonly written
       using version 2.50 or 2.60.
     * The ability to override the owner and group for all the files and
       directories on a UDF volume using mount options.
     * The ability to set the owner and group for files and directories
       that lack defined owner or group information using mount options.
       (The UDF specification allows for files and directories without
       owners or groups.)
     * The ability to override the mode for all directories and files
       on a volume using mount options.
     * Support for mounting previous versions of incrementally recorded
       media, like CD-Rs.

TCP-AO Authentication Option

   URL: http://svnweb.freebsd.org/base/user/andre/tcp-ao/

   Contact: André Oppermann <andre at FreeBSD.org>

   Work is under way to implement TCP-AO (TCP Authentication Option)
   according to RFC5925 and RFC5926. TCP-AO is an extension to TCP-MD5
   signatures commonly used in routers to secure BGP routing protocol
   sessions against spoofing attacks. The work is under contract and
   sponsored by Juniper Networks.

The entities Documentation Branch

   URL: http://svnweb.freebsd.org/doc/projects/entities/

   Contact: René Ladan <rene at FreeBSD.org>

   The entities branch was created to reduce duplication of committer
   entities. Currently there is one in authors.ent (with email
   addresses) and another one in developers.ent (without email
   addresses). This seems to be a leftover from the doc/www split in
   earlier times. To remedy this, developers.ent is merged into
   authors.ent and entities with email addresses are postfixed as such.
   Apart from the instructions for the initial commit, there should be
   little user-visible changes. Some related cleanups, like cleaning up
   team definitions, replacing literal names by entities from
   authors.ent, and adding missing names to authors.ent are also made.

Open tasks:

    1. Finish processing of the <email> tag.
    2. Send out a CFT.
    3. Merge back into head branch.

The FreeBSD Japanese Documentation Project

   URL: http://www.FreeBSD.org/ja/
   URL: http://www.jp.FreeBSD.org/doc-jp/

   Contact: Hiroki Sato <hrs at FreeBSD.org>
   Contact: Ryusuke Suzuki <ryusuke at FreeBSD.org>

   Web page (htdocs): Newsflash and some other updates in the English
   version have been translated to keep them up-to-date. Specifically,
   the release related contents were updated in this period.

   Books: FreeBSD Handbook has constantly been updated since the last
   report; particularly, "ports", "desktop" section were largely
   updated. Some progress has been made in the "advanced-networking"
   section, contributed by a new translator.

   "Writing FreeBSD Problem Reports" article is now in sync with the
   English version.

Open tasks:

    1. Further translation work of outdated documents in ja_JP.eucJP

UFS/FFS Performance Work

   URL: http://www.mckusick.com/publications/faster_fsck.pdf

   Contact: Kirk McKusick <mckusick at mckusick.com>

   Some work on the performance of UFS/FFS has been recently committed
   to HEAD. The purpose of the corresponding change to the FFS layout
   policy is to reduce the running time for a full file system check.
   It also reduces the random access time for large files and speeds up
   the traversal time for directory tree walks.

   The key idea is to reserve a small area in each cylinder group
   immediately following the inode blocks for the use of metadata,
   specifically indirect blocks and directory contents. The new policy
   is to preferentially place metadata in the metadata area and
   everything else in the blocks that follow the metadata area.

   The size of this area can be set when creating a filesystem using
   newfs(8) or changed in an existing filesystem using tunefs(8). Both
   utilities use the -k held-for-metadata-blocks option to specify the
   amount of space to be held for metadata blocks in each cylinder
   group. By default, newfs(8) sets this area to half of minfree
   (typically 4% of the data area).

   As with all layout policies, it only affect layouts of things
   allocated after it is put in place. So these changes will primarily
   be noticable on newly created file systems.

   File system checks have been sped up by caching the cylinder group
   maps in pass1 so that they do not need to be read again in pass5. As
   this nearly doubles the memory requirement for fsck(8), the cache is
   thrown away if other memory needs in fsck(8) would otherwise fail.
   Thus, the memory footprint of fsck(8) remains unchanged in memory
   constrained environments. This optimization will be evident on all
   UFS/FFS filesystems.

   This work was inspired by a paper presented at Usenix's FAST '13.

Open tasks:

    1. MFC to 9-STABLE and possibly 8-STABLE should happen by May unless
       problems arise with these changes in HEAD.

Wine32 on FreeBSD/amd64

   URL: http://wiki.freebsd.org/i386-Wine

   Contact: David Naylor <dbn at FreeBSD.org>

   The i386-wine port (formally wine-fbsd64) has been added to the ports
   collection (as emulators/i386-wine-devel). Although the port can only
   be compiled under a x86 32-bit system the resulting package can be
   installed on a x86 64-bit system and enable running of 32-bit
   Microsoft Windows programs.

   Packages for the port are in development and should be announced
   shortly on the freebsd-questions and freebsd-emulation mailing lists.

   There are some issues with Wine32 on FreeBSD/amd64 -- possibly
   related to FreeBSD32_COMPACT, or other general 32/64-bit issues --
   that could do with some focus.

Open tasks:

    1. Port wine64 to FreeBSD.
    2. Port WoW64 (wine32 and wine64 together) to FreeBSD.
    3. Fix 32- and 64-bit issues (such as Intel graphics not


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

   Contact: FreeBSD Xfce Team <xfce at FreeBSD.org>

   The Xfce FreeBSD Team has updated many ports, especially:

     * tumbler: 0.1.27 (add new option, COVER)
     * Parole: 0.5.0
     * xfdesktop: 4.10.2
     * Midori: 0.4.9 (full compatible with Vala 0.18), 0.5.0 is
       available (see links)
     * Orage: 4.8.4
     * xfce4-terminal: 0.6.1 (renamed by upstream, previous name was

   This last application contains drop-down functionality, new window
   slides down from the top of the screen when key (we can define
   keyboard shortcut) is pressed.

Open tasks:

    1. Replace libxfce4gui (deprecated and not maintained by upstream)
    by libxfce4ui in order to enhance support panel plugins for Xfce >=
    2. Work on Midori Gtk3 port.
    3. Fix gtk-xfce-engine with Gtk+ >=3.6.

xorg on FreeBSD

   URL: http://wiki.freebsd.org/Xorg
   URL: http://people.freebsd.org/~zeising/xorg-7.7.diff
   URL: http://trillian.chruetertee.ch/ports/browser/trunk
   URL: http://trillian.chruetertee.ch/ports/browser/branches/xorg-7.7

   Contact: FreeBSD X11 Team <x11 at FreeBSD.org>
   Contact: Niclas Zeising <zeising at FreeBSD.org>
   Contact: Koop Mast <kwm at FreeBSD.org>

   Most of the work during this period has been in updating, testing and
   stabilizing the development repository. A number of xorg applications
   and various other leaf ports has been committed as part of this
   effort. After this a CFT was sent out asking for help in testing the
   remaining bits in development, including updates to all major
   libraries and xorg-server.

   Currently, the CFT patch has been submitted for an exp-run to iron
   out any final bugs. The plan is to merge it sometime after FreeBSD
   8.4 is released and the ports tree is reopened for commits.

   Work is also on-going to port new versions of MESA and OpenGL, as
   well as a new version of xorg-server, and perhaps in the future,
   Wayland. These are considered more long-term goals and are not
   targeted for the current update.

Open tasks:

    1. Decide how to handle the new and old xorg distributions. In
    recent xorg, a lot of legacy driver support has been dropped,
    therefore we need to maintain two xorg distributions to not lose a
    lot of hardware drivers. Currently, this is done by setting the flag
       WITH_NEW_XORG in /etc/make.conf, but a more practical solution is
       needed. This is especially important since the flag is not very
       user-friendly, and since there currently will be no official
       packages for the new distribution.
    2. Continue to test and update xorg related ports. There are new
       versions of xserver, as well as MESA and related OpenGL libraries
       which needs to be ported and eventually integrated into the ports
    3. Port Wayland. The future of graphical environments in open source
       operating systems seems to be Wayland. This needs to be ported to
       FreeBSD so that a wider audience can test it, and so that it
       eventually can be integrated into the ports tree, perhaps as a
       replacement for the current xorg.
    4. Look into replacements for HAL. HAL is used for hot-plugging of
       devices, but it has been long abandoned by Linux. A replacement,
       perhaps build on top of devd would be nice to have. This work
       should be coordinated with the FreeBSD GNOME and KDE teams.

More information about the freebsd-announce mailing list