[FreeBSD-Announce] FreeBSD Status Reports April - September, 2009

Daniel Gerzo danger at FreeBSD.org
Sun Oct 11 17:54:59 UTC 2009

FreeBSD Quarterly Status Report


   This report covers FreeBSD related projects between April and September
   2009. During that time a lot of work has been done on wide variety of
   projects, including the Google Summer of Code projects. The BSDCan
   conference was held in Ottawa, CA, in May. The EuroBSDCon conference
   was held in Cambridge, UK, in September. Both events were very
   successful. A new major version of FreeBSD, 8.0 is to be released soon.
   If you are wondering what's new in this long-awaited release, read Ivan
   Voras' excellent summary.

   Thanks to all the reporters for the excellent work! We hope you enjoy
   the reading.

   Please note that the next deadline for submissions covering reports
   between October and December 2009 is January 15th, 2010.

Google Summer of Code

     * About Google Summer of Code 2009
     * BSD-licensed iconv (Summer of Code 2009)
     * BSD-licensed text-processing tools (Summer of Code 2008)
     * Ext2fs Status report (Summer of Code 2009)
     * libnetstat(3) - networking statistics (Summer of Code 2009)
     * pefs - stacked cryptographic filesystem (Summer of Code 2009)


     * BSD# Project
     * Clang replacing GCC in the base system
     * FreeBSD TDM Framework
     * Grand Central Dispatch - FreeBSD port
     * libprocstat(3) - process statistics
     * New BSD licensed debugger
     * NFSv4 ACLs
     * The Newcons project
     * VirtualBox on FreeBSD

FreeBSD Team Reports

     * FreeBSD Bugbusting Team
     * FreeBSD KDE Team
     * FreeBSD Ports Management Team
     * Release Engineering Status Report
     * The FreeBSD Foundation Status Report

Network Infrastructure

     * Enhancing the FreeBSD TCP Implementation
     * Modular Congestion Control
     * Network Stack Virtualization
     * Stream Control Transmission Protocol (SCTP)


     * FreeBSD/ZFS
     * hwpmc for MIPS


     * The FreeBSD Dutch Documentation Project
     * The FreeBSD German Documentation Project
     * The FreeBSD Hungarian Documentation Project
     * The FreeBSD Spanish Documentation Project


     * FreeBSD/sparc64


     * FreeBSD Gecko Project
     * Portmaster - utility to assist users with managing ports
     * Valgrind suite on FreeBSD


     * EuroBSDcon 2009
     * FreeBSD Developer Summit, Cambridge UK
     * New approach to the locale database
     * The FreeBSD Forums

About Google Summer of Code 2009

   URL: http://socghop.appspot.com/org/home/google/gsoc2009/freebsd
   URL: http://wiki.freebsd.org/SummerOfCode2009Projects

   Contact: Brooks Davis <brooks at freebsd.org>
   Contact: Tim Kientzle <kientzle at freebsd.org>
   Contact: Robert Watson <rwatson at freebsd.org>

   2009 was The FreeBSD Project's fifth year of participation in the
   Google Summer of Code. We had a total of 17 successful projects. Some
   GSoC code will be shipping with FreeBSD 8.0-RELEASE and others will be
   integrated into future releases.

   The FreeBSD GSoC admin team would like to thank Google and our students
   and mentors of another great year!

BSD# Project

   URL: http://code.google.com/p/bsd-sharp/
   URL: http://www.mono-project.org/

   Contact: Romain Tartičre <romain at blogreen.org>

   The BSD# Project is devoted to porting the Mono .NET framework and
   applications to the FreeBSD operating system.

   During the past year, the BSD# Team continued to track the Mono
   development and the lang/mono port have almost always been up-to-date
   (we however had to skip mono-2.2 because of some regression issues in
   this release). Most of our patches have been merged in the mono trunk
   upstream, and should be included in the upcoming mono-2.6 release.

   In the meantime, a few more .NET related ports have been updated or
   added to the FreeBSD ports tree. These ports include:
     * www/xsp and www/mod_mono that make it possible to use FreeBSD for
       hosting ASP.NET application;
     * lang/boo, a CLI-targeted programming language similar to Python;
     * lang/mono-basic, the Visual Basic .NET Framework for Mono;
     * devel/monodevelop, an Integrated Development Environment for .NET;
     * and much more...

Open tasks:

    1. Test mono ports and send feedback (we are especially interested in
       tests where NOPORTDOCS / WITH_DEBUG is enabled).
    2. Port the mono-debugger to FreeBSD.
    3. Build a debug live-image of FreeBSD so that Mono hackers without a
       FreeBSD box can help us fixing bugs more efficiently.

BSD-licensed iconv (Summer of Code 2009)

   URL: http://wiki.freebsd.org/G%C3%A1borSoC2009

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

   The code has been extracted from NetBSD and has been transformed into
   an independent shared library. The basic encodings are well supported.
   Almost all forward conversions (foo -> UTF-32) are compatible with GNU
   but the reverse ones are not so accurate because of GNU's advanced
   transliteration. Some extra encodings have also been added. There are
   two modules, which segfault; they need some debugging. I can keep
   working on this project as part of my BSc thesis, so I hope to be able
   to solve the remaining issues. Improved GNU compatibility is also very
   desired (extra command line options for iconv(1), iconvctl(), private
   interfaces, etc.).

Open tasks:

    1. Fix segfaults in Big5 and HZ modules
    2. Improve transliteration in reverse encodings
    3. Improve GNU compatibility by implementing extra features
    4. Verify POSIX compatibility
    5. Verify GNU compatibility
    6. Check performance

BSD-licensed text-processing tools (Summer of Code 2008)

   URL: http://wiki.freebsd.org/G%C3%A1borSoC2008

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

   This project was started as part of Google Summer of Code 2008 but
   there is still a bit of work to complete some missing parts. The
   BSD-licensed grep implementation is feature-complete and has a good
   level of GNU compatibility. Our only current concern about the
   BSD-licensed version is to improve its performance. The GNU variant is
   much more complex, has about 8 KSLOC, while BSD grep is tiny, has only
   1.5 KSLOC. GNU uses some shortcuts and optimizations to speed-up calls
   to the regex library; that is why it is significantly faster. My point
   of view is that such optimizations must be implemented in the regex
   library, keeping the dependent utilities clean and easy to read. BSD
   grep is so tiny that there is hardly any optimization opportunity by
   simplifying the code, so the regex library is the next important TODO.
   There is another issue with the current regex library. It does not
   support some invalid regular expressions, which work in GNU. We need to
   maintain compatibility, so we cannot just drop this feature. Actually,
   BSD grep is linked to the GNU regex library to maintain this feature
   but due to the lack of the mentioned shortcuts, it is still slower than
   GNU. Anyway, if we can live with this little performance hit until we
   get a modern regex library, I think grep is ready to enter HEAD. As for
   the regex library, NetBSD's result of the last SoC is worth taking a

   The sort utility has been rewritten from scratch. The existing
   BSD-licensed implementation could not deal with wide characters by
   design. The new implementation is still lacking some features but is
   quite complete. There is a performance issue, though. Sorting is a
   typical algorithmic subject but I am not an algorithmic expert, so my
   implementation is not completely optimal. Some help would be welcome
   with this part.

   The bc/dc utilities have been ported from OpenBSD. They pass OpenBSD's
   and GNU's regression tests but they arrived too late to catch 8.X, so
   they will go to HEAD after the release.

Open tasks:

    1. Improve sort's sorting and file merging algorithms
    2. Complete missing features for sort
    3. Get a modern regex library for FreeBSD

Clang replacing GCC in the base system

   URL: http://wiki.freebsd.org/BuildingFreeBSDWithClang

   Contact: Ed Schouten <ed at FreeBSD.org>
   Contact: Roman Divacky <rdivacky at FreeBSD.org>
   Contact: Brooks Davis <brooks at FreeBSD.org>
   Contact: Pawel Worach <pawel.worach at gmail.com>

   The clang at FreeBSD team presents the status of clang/LLVM being able to
   compile FreeBSD system. The current status is:
     * i386 - kernel boots, world needs little hacks but works
     * amd64 - kernel boots, world needs little hacks but works
     * ppc - broken because of unknown RTLD bug
     * other - unknown

   All other platforms are untested.

   A lot has happened over the spring/summer: amd64 got proper
   mcmodel=kernel support, compiler-rt has been introduced (paving the way
   for libgcc replacement), we have run two experimental port builds to
   see how clang does there. The C++ support is able to parse devd.cc
   without warnings. We have got the kernel working with -O2. FreeBSD has
   been promoted to be an officially supported plaform in LLVM. As a
   result of all this work, many parts of FreeBSD that did not compile
   before now build without problems.

Open tasks:

    1. The "ClangBSD" branch of FreeBSD got a little stale and has not
       been updated for a while.
    2. We also need to get some important fixes into LLVM to get libc
       compiling and some other smaller issues.
    3. We can still appreciate more testers on minor platforms (mostly on
       ARM, PPC and MIPS, but testing on other platforms is also welcome).

Enhancing the FreeBSD TCP Implementation

   URL: http://caia.swin.edu.au/freebsd/etcp09/
   URL: http://caia.swin.edu.au/urp/newtcp/
   URL: http://www.freebsdfoundation.org/projects.shtml
   URL: http://people.freebsd.org/~lstewart/patches/tcp_ffcaia2008/

   Contact: Lawrence Stewart <lstewart at freebsd.org>

   TCP appropriate byte counting (RFC 3465) support has been merged into
   the FreeBSD 8 branch and will ship in FreeBSD 8.0-RELEASE.

   The reassembly queue auto-tuning and SIFTR work was not ready in time
   to safely integrate for 8.0-RELEASE. Padding has been added to
   necessary TCP structs to facilitate MFCing features back to the
   8-STABLE branch after 8.0 is released.

   Candidate patches against FreeBSD-CURRENT will be ready for wider
   testing in the coming weeks. The freebsd-net mailing list will be
   solicited for testing/feedback when everything is ready.

Open tasks:

    1. Solicit review/testing and integrate the ALQ kld and variable
       length message support patch into FreeBSD-CURRENT.
    2. Solicit review/testing and integrate the SIFTR tool into
    3. Complete dynamic reassembly queue auto-tuning patch for
    4. Fix an identified bug in the SACK implementation's fast
       retransmit/fast recovery behavior.
    5. Profit!

EuroBSDcon 2009

   URL: http://2009.eurobsdcon.org/
   URL: http://2010.eurobsdcon.org/

   Contact: Sam Smith <eurobsdcon at ukuug.org>
   Contact: Robert Watson <rwatson at FreeBSD.org>

   EuroBSDcon 2009 happened in Cambridge, with over 160 users, developers,
   friends and others. Slides, papers and audio are now up on the website
   for those who could not make it to Cambridge. Next year's event in 2010
   will take place in Karlsruhe from 8 to 10 October 2010. If you are
   interested in what you missed in 2009, or to join the mailing list so
   you do not miss out next year, visit http://2009.eurosbsdcon.org.

Ext2fs Status report (Summer of Code 2009)

   URL: http://wiki.freebsd.org/SOC2009AdityaSarawgi

   Contact: Aditya Sarawgi <sarawgi.aditya at gmail.com>

   FreeBSD's ext2fs had some parts under GPL. The aim of my project was to
   rewrite those parts and free ext2fs from GPL. I have been successful in
   rewriting the parts and NetBSD's ext2fs was a great help in this.
   Certain critical parts under GPL were also removed due to which the
   write performance suffered. I also implemented Orlov Block Allocator
   for ext2fs. Currently I am planning to make ext2fs Multiprocessor Safe
   (MPSAFE). My work resides in truncs_ext2fs branch of Perforce.

Open tasks:

    1. Ext4 support for FreeBSD
    2. Directory indexing for ext2fs
    3. Journaling in ext2fs using gjournal

FreeBSD Bugbusting Team

   URL: http://www.FreeBSD.org/support.html#gnats
   URL: http://wiki.FreeBSD.org/BugBusting
   URL: http://people.FreeBSD.org/~linimon/studies/prs/

   Contact: Gavin Atkinson <gavin at FreeBSD.org>
   Contact: Mark Linimon <linimon at FreeBSD.org>
   Contact: Remko Lodder <remko at FreeBSD.org>
   Contact: Volker Werth <vwe at FreeBSD.org>

   We continue to classify PRs as they arrive, adding 'tags' to the
   subject lines corresponding to the kernel subsystem involved, or man
   page references for userland PRs. These tags, in turn, produce lists of
   PRs sorted both by tag and by manpage.

   The list of PRs recommended for committer evaluation by the Bugbusting
   Team continues to receive new additions. This list contains PRs, mostly
   with patches, that the Bugbusting Team feel are probably ready to be
   committed as-is, or are probably trivially resolved in the hands of a
   committer with knowledge of the particular subsystem. All committers
   are invited to take a look at this list whenever they have a spare 5
   minutes and wish to close a PR.

   A full list of all the automatically generated reports is also
   available at one of the cited URLs. Any recommendations for reports
   which not currently exist but which would be beneficial are welcomed.

   Gavin Atkinson gave a presentation on "The PR Collection Status" at the
   EuroBSDCon 2009 DevSummit, and discussed with other participants
   several other ideas to make the PR database more useful and usable.
   Several good ideas came from this, and will hopefully lead to more
   useful tools in the near future. Discussions also took place on how it
   may be possible to automatically classify non-ports PRs with a view
   towards notifying interested parties, although investigations into this
   have not yet begun.

   Mark Linimon also continues attempting to define the general problem
   and investigating possible new workflow models, and presented work on
   this at BSDCan 2009.

   Since the last status report, the number of open bugs has increased to
   around the 5900 mark, partially because of an increased focus on
   getting more information into the existing PRs, in an attempt to make
   sure all the information required is now available. As a result,
   although the number of open PRs has increased, they are hopefully of
   better quality.

   As always, more help is appreciated, and committers and non-committers
   alike are always invited to join us on #freebsd-bugbusters on EFnet and
   help close stale PRs or commit patches from valid PRs.

Open tasks:

    1. Work on suggestions from developers who were at the EuroBSDCon
    2. Try to find ways to get more committers helping us with closing the
       PRs that the team has already analyzed.

FreeBSD Developer Summit, Cambridge UK

   URL: http://wiki.FreeBSD.org/200909DevSummit

   Contact: Robert Watson <rwatson at FreeBSD.org>

   Around 70 FreeBSD developers and guests attended the FreeBSD developer
   summit prior to EuroBSDCon 2009 in Cambridge, UK. Hosted at the
   University of Cambridge Computer Laboratory, the workshop-style event
   consisted of prepared presentations, as well as group hacking and
   discussion sessions. Talks covered topics including 802.11 mesh
   networking, virtual network stacks and kernels, a new BSD-licensed
   debugger, benchmarking, bugbusting, NetFPGA, a port of Apple's GCD
   (Grand Central Dispatch) to FreeBSD, security policy work,
   cryptographic signatures, FreeBSD.org system administration, time
   geeks, a new console driver, and the FreeBSD subversion migration.
   Slides for many talks are now available on the wiki page. A good time
   was had by all, including a punting outing on the River Cam!

FreeBSD Gecko Project

   URL: https://trillian.chruetertee.ch/freebsd-gecko/wiki/TODO

   Contact: Beat Gaetzi <beat at FreeBSD.org>
   Contact: Martin Wilke <miwi at FreeBSD.org>
   Contact: Andreas Tobler <andreast-list at fgznet.ch>

   Andreas Tobler made the classic mistake of sending us a lot of powerpc
   and sparc64 related patches. The usual punishment, of giving him a
   commit bit to the Gecko repository, has been applied.

   We currently have some old ports in the ports tree:
     * www/mozilla is 5 year old now, no longer supported upstream, and
       has a lot of security vulnerabilities. We can use www/seamonkey
     * www/xulrunner is superseeded by www/libxul.

   A patch that includes the following changes has been tested on
   pointyhat and is ready for commit:
     * Remove references to www/mozilla/Makefile.common and
     * Switch USE_GECKO= xulrunner firefox mozilla to USE_GECKO= libxul
       and remove www/xulrunner

   We are also working on Firefox 3.6 (Alpha 2), Thunderbird 3.0 (Beta 4),
   new libxul and Seamonkey 2.0 (Beta 2) ports. All of them are
   already committed to our Gecko repository.

   A current status and todo list can be found at

Open tasks:

    1. Remove mozilla, xulrunner and firefox2 from the ports tree.
    2. The www/firefox35 port should be moved to www/firefox.
    3. The old (and somewhat stale) Gecko providers mozilla, nvu,
       xulrunner, flock and firefox also need to be removed.

FreeBSD KDE Team

   URL: http://freebsd.kde.org
   URL: http://miwi.bsdcrew.de/category/kde/
   URL: http://blogs.freebsdish.org/tabthorpe/category/kde

   Contact: Thomas Abthorpe <tabthorpe at FreeBSD.org>
   Contact: Max Brazhnikov <makc at FreeBSD.org>
   Contact: Martin Wilke <miwi at FreeBSD.org>

   Since the spring, the FreeBSD KDE team has been busy upgrading KDE from
   4.2.0 up through to 4.3.1. As part of the ongoing maintenance of KDE,
   the team also updated Qt4 from 4.4.3 through to 4.5.2

   We added two new committers/maintainers to the team, Kris Moore
   (kmoore@) and Dima Panov (fluffy@). We also granted enhanced area51
   access to contributors Alberto Villa and Raphael Kubo da Costa. Alberto
   has been our key contributor updating and testing Qt 4.6.0-tp1. Raphael
   is a KDE developer, who has become our Gitorious liaison, he has been
   responsible for getting FreeBSD Qt patches merged in upstream.

   Markus Brüffer (markus@) spent a lot of time patching widgets and
   system plugins so they would work under FreeBSD. We would like to thank
   him for all his effort!

Open tasks:

    1. Update to Qt 4.6.0
    2. Update to KDE 4.4.0
    3. Work with our userbase on fixing an EOL for KDE3 in the ports tree

FreeBSD Ports Management Team

   URL: http://www.freebsd.org/ports/
   URL: http://portsmon.FreeBSD.org/index.html
   URL: http://www.freebsd.org/portmgr/index.html
   URL: http://tinderbox.marcuscom.com

   Contact: Mark Linimon <linimon at FreeBSD.org>

   The ports count has soared to over 20,700. The PR count had been driven
   below 800 by some extraordinary effort, but once again is back to its
   usual count of around 900.

   We are currently building packages for amd64-6, amd64-7, amd64-8,
   i386-6, i386-7, i386-8, sparc64-7, and sparc64-8. There have been
   preliminary runs of i386-9; however, to be able to continue builds on
   -9, we will either need to find places to host a number of new
   machines, or drop package building for -6. The mailing list discussion
   of the latter proved quite controversial.

   We have added some new i386 machines to help speed up the builds, but
   this only makes up for the disk failures on some of our older, slower,
   i386 nodes.

   We also appreciate the loan of more package build machines from several
   committers, including pgollucci@, gahr@, erwin@, Boris Kochergin, and
   Craig Butler.

   The portmgr@ team has also welcomed new members Ion-Mihai Tetcu
   (itetcu@) and Martin Wilke (miwi@). We also thank departing member
   Kirill Ponomarew (krion@) for his long service.

   Ion-Mihai has spent much time working on a system that does automatic
   Quality Assurance on new commits, called QAT. A second tinderbox called
   QATty has helped us to fix many problems, especially those involving
   custom PREFIX and LOCALBASE settings, and documentation inclusion
   options. Ports conformance to documented features / non-default
   configuration will follow.

   Between pav and miwi, over 2 dozen experimental ports runs have been
   completed and committed.

   We have added 5 new committers since the last report, and 2 older ones
   have rejoined.

Open tasks:

    1. We are currently trying to set up ports tinderboxes that can be
       made available to committers for pre-testing; those who can loan
       machines for this should contact Ion-Mihai (itetcu@) with details
       regarding the hardware and bandwidth.
    2. Most of the remaining ports PRs are "existing port/PR assigned to
       committer". Although the maintainer-timeout policy is helping to
       keep the backlog down, we are going to need to do more to get the
       ports in the shape they really need to be in.
    3. Although we have added many maintainers, we still have almost 4,700
       unmaintained ports (see, for instance, the list on portsmon). (The
       percentage is down to 22%.) We are always looking for dedicated
       volunteers to adopt at least a few unmaintained ports. As well, the
       packages on amd64 and sparc64 lag behind i386, and we need more
       testers for those.

FreeBSD TDM Framework

   Contact: Rafal Czubak <rcz at semihalf.com>
   Contact: Michal Hajduk <mih at semihalf.com>

   This work's purpose is a generic and flexible framework for systems
   equipped with Time Division Multiplexing (TDM) units, often found on
   embedded telecom chips. The framework is designed to support various
   controllers and many types of TDM channels e.g. voiceband, sound and
   miscellaneous data channels. Currently, voiceband infrastructure is
   being developed on Marvell RD-88F6281 reference board. It will serve as
   an example of how to use the TDM framework for other channel types. The
   direct objective of using TDM with voiceband channels is bringing a
   FreeBSD based VoIP system, capable of bridging analog telephone world
   with digital IP telephony. Together with third party VoIP software
   (e.g. Asterisk), the design can serve as VoIP Private Branch Exchange

   Current state highlights:
     * TDM controller interface
     * TDM channel interface
     * TDM channel API for kernel modules
     * codec interface
     * voiceband channel character device driver
     * TDM controller driver for Marvell Kirkwood and Discovery SoCs
     * Si3215 SLIC driver
     * Si3050 DAA driver

Open tasks:

    1. Develop demo application showing example usage of voiceband
    2. Integrate voiceband infrastructure with Zaptel/DAHDI telephony
       hardware drivers.


   Contact: Marius Strobl <marius at FreeBSD.org>

   Noteworthy developments regarding FreeBSD/sparc64 since the last Status
   Reports are:
     * Cas(4), a driver for Sun Cassini/Cassini+, as well as National
       Semiconductor DP83065 Saturn Gigabit NICs has been committed and
       thus will be part of FreeBSD beginning with 8.0-RELEASE and
       7.3-RELEASE, respectively. This means that the on-board NICs found
       in Fire V440, as well as the add-on cards based on these chips, are
       now supported, including on non-sparc64 machines. Unfortunately,
       the cas(4) driver triggers what seem to be secondary problems with
       the on-board NICs found in B100 blades and Fire V480, which due to
       lack of access to such systems could not be fixed so far.
     * Initial support for sun4u machines based on the "Fire"
       Host-PCI-Express bridge like Fire V215, V245, etc. has been
       completed (including support for the on-board ATA controller, which
       caused several problems at first, and MSI/MSI-X). Some code like
       the quirk handling for the ALi/ULi chips found in these machines
       needs to be revisited though and no stability tests have been
       conducted so far. If all goes well, the code will hit HEAD some
       time after FreeBSD 8.0-RELEASE has been released. In theory,
       machines based on the "Oberon" Host-PCI-Express bridge, at least
       for the most part, should also be supported with these changes, but
       due to lack of access to a Mx000 series machine the code could not
       be tested with these so far.
     * Some bugs in the snd_t4dwave(4) driver have been fixed, as well as
       some special handling for sparc64 has been added so it does 32-bit
       DMA and now generally works with the on-board ALi M5451 found for
       example in Blade 100 and Blade 1500. Unfortunately, it was only
       tested to work correctly in two out of three Blade 100. Why it
       still does not work correctly in the remaining one is currently
       unknown but at least no longer causes IOMMU-panics so testing
       snd_t4dwave(4) on sparc64 is no longer harmful. These changes will
       be part of FreeBSD 8.0-RELEASE and 7.3-RELEASE.
     * Ata-marvell(4) has been fixed to work on sparc64 (actually also on
       anything that is not x86 with less than 4GB of RAM). These fixes
       will be part of FreeBSD 8.0-RELEASE and 7.3-RELEASE.
     * A proper and machine-independent fix for the old problem that the
       loader leaves the NIC opened by the firmware, which could lead to
       panics during boot when netbooting, has been developed but not
       committed yet.

Open tasks:


   Contact: Pawel Dawidek <pjd at FreeBSD.org>

   We believe that the ZFS file system is now production-ready in FreeBSD
   8.0. Most (if not all) reported bugs were fixed and ZFS is no longer
   tagged as experimental. There is also ongoing work in Perforce to bring
   the latest ZFS version (v19) to FreeBSD.

Open tasks:

    1. Download 8.0 release candidates and test, test, test and report any
       problems to the freebsd-fs at FreeBSD.org mailing list.

Grand Central Dispatch - FreeBSD port

   URL: http://libdispatch.macosforge.org/

   Contact: Robert Watson <rwatson at FreeBSD.org>
   Contact: Stacey Son <sson at FreeBSD.org>
   Contact: libdispatch mailing list
   <libdispatch-dev at lists.macosforge.org>

   We have ported libdispatch, Apple's Grand Central Dispatch event and
   concurrency framework to FreeBSD:
     * Added new kqueue primitives required to support GCD, such as
     * Created autoconf and automake build framework for libdispatch
     * Modified libdispatch to use POSIX semaphores instead of Mach
     * Adapted libdispatch to use portable POSIX time routines

   Jordan Hubbard has also prepared a blocks-aware clang compiler package
   for FreeBSD. When compiled with clang, libdispatch provides
   blocks-based, as well as function-based callbacks.

   The port was presented at the FreeBSD Developer Summit in Cambridge, UK
   in September, and slides are online on the devsummit wiki page. A
   FreeBSD port is now available in the Ports Collection. After FreeBSD
   8.0-RELEASE has shipped, the new kqueue primitives will be MFC'd so
   that libdispatch works out of the box on FreeBSD 8.1-RELEASE.

Open tasks:

    1. Complete porting of libdispatch test suite to FreeBSD.
    2. Investigate pthread work queue implementation for FreeBSD.
    3. Evaluate performance impact of some machine-dependent and
       OS-dependent optimizations present in the Mac OS X version of
       libdispatch to decide if they should be done for other platforms
       and OS's.
    4. Explore whether FreeBSD base operating system tools would benefit
       from being modified to use libdispatch.

hwpmc for MIPS

   URL: http://wiki.freebsd.org/FreeBSD/mips
   URL: http://wiki.freebsd.org/FreeBSD/mips/UBNT-RouterStationPro

   Contact: George Neville-Neil <gnn at freebsd.org>

   Currently working on board bringup. I have looked over the docs for how
   MIPS provides performance counters and will begin adding code soon.

libnetstat(3) - networking statistics (Summer of Code 2009)

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

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

   The libnetstat(3) project provides a user-space library API to monitor
   networking functions with the following benefits:
     * ABI-robust interface making use of accessor functions in order to
       divorce monitoring applications from kernel or user ABI changes.
     * Supports running 32-bit monitoring tools on top of a 64-bit kernel.
     * Improved consistency for both kvm(3) and sysctl(3) when retrieving

   The supported abstractions are as follows:
     * Active sockets and socket buffers
     * Network interfaces and multicast interfaces
     * mbuf(9) statistics
     * bpf(4) statistics
     * Routing statistics, routing tables, multicast routing
     * Protocol-dependent statistics

   There is a sample application, called nettop(8), which provides a
   simple ncurses-based top(1)-like interface for monitoring active
   connections and network buffer allocations via the library. A modified
   version of netstat(1) has also been created to use libnetstat(3) as
   much as possible.

libprocstat(3) - process statistics

   URL: http://svn.freebsd.org/viewvc/base/projects/libprocstat/

   Contact: Stanislav Sedov <stas at FreeBSD.org>
   Contact: Ulf Lilleengen <lulf at FreeBSD.org>

   The libprocstat project is an ongoing effort to develop a library that
   can be used to retrieve information about running processes and open
   files in the uniform and platform-independent way both from a running
   system or from core files. This will facilitate the implementation of
   file- or process-monitoring applications like lsof(1), fstat(1), fuser,
   etc. The libprocstat repository contains a preliminary version of the
   library. It also includes rewrites of the fstat and the fuser utilities
   ported to use this library instead of retrieving all the required
   information via the kvm(3) interface; one of the important advantages
   of the versions that use libprocstat is that these utilities are ABI

Open tasks:

    1. Implement KVM-based namecache lookup to retrieve filesystem paths
       associated with file descriptors and VM objects.
    2. Analyze possible ways of exporting file and process information
       from the kernel in an extensible and ABI-independent way.

Modular Congestion Control

   URL: http://caia.swin.edu.au/urp/newtcp/
   URL: http://svn.freebsd.org/viewvc/base/projects/tcp_cc_8.x/

   Contact: Lawrence Stewart <lstewart at freebsd.org>

   The patch has received some significant rototilling in the past few
   months to prepare it for merging to FreeBSD-CURRENT. Additionally, I
   completed an implementation of the CUBIC congestion control algorithm
   to complement the existing NewReno and H-TCP algorithm implementations
   already available.

   I have one further intrusive change to make, which will allow
   congestion control modules to be shared between the TCP and SCTP
   stacks. Once this is complete, I will be soliciting for review/testing
   in the hope of committing the patch to FreeBSD-CURRENT in time to be
   able to backport it for 8.1-RELEASE.

Open tasks:

    1. Abstract the congestion control specific variables out of the TCP
       and SCTP control blocks into a new struct that can be passed into
       the API instead of the control block itself.

Network Stack Virtualization

   URL: http://wiki.freebsd.org/Image
   URL: http://wiki.freebsd.org/200909DevSummit

   Contact: Bjoern A. Zeeb <bz at FreeBSD.ORG>
   Contact: Marko Zec <zec at FreeBSD.ORG>
   Contact: Robert Watson <rwatson at FreeBSD.ORG>

   The network stack virtualization project aims at extending the FreeBSD
   kernel to maintain multiple independent instances of networking state.
   This allows for networking independence between jail environment, each
   maintaining its private network interfaces, IPv4 and IPv6 network and
   port address space, routing tables, IPSec configuration, firewalls, and

   During the last months the remaining pieces of the VIMAGE work were
   merged by Marko, Julian and Bjoern. Robert Watson developed a vnet
   allocator to overcome ABI issues. Jamie Gritton merged his hierachical
   jail framework that now also is the management interface for virtual
   network stacks.

   During the FreeBSD Developer Summit that took place at EuroBSDCon 2009
   in Cambridge, UK, people virtualized more code. As a result SCTP and
   another accept filter were virtualized and more people became familiar
   with the design of VImage and the underlying concepts. Finally getting
   more hands involved was a crucial first step for the long term success
   of kernel virtualization.

   The next steps will be to finish the network stack virtualization,
   generalize the allocator framework before thinking of virtualizing
   further subsystems and to update the related documentation. Along with
   that a proper jail management framework will be worked on. Long term
   goals, amongst others, will be to virtualize more subsystems like SYS-V
   IPC, better privilege handling, and resource limits.

   In the upcoming FreeBSD 8.0 Release, vnets are treated as an
   experimental feature. As a result, they are not yet recommended for use
   in production environments. There was lots of time spent to finalize
   the infrastructure for vnets though, so that further changes can be
   merged and we are aiming to have things production ready for 8.2.

   In case you want to help to achieve this goal, feel free to contact us
   and support or help virtualizing outstanding parts like two firewalls,
   appletalk, netipx, ... as well as generating regression tests.

New approach to the locale database

   URL: http://wiki.freebsd.org/LocaleNewApproach
   URL: svn://svn.freebsd.org/base/user/edwin/locale

   Contact: Edwin Groothuis <edwin at FreeBSD.org>
   Contact: i18n mailinglist <freebsd-i18n at FreeBSD.org>

   Problem: Over the years the FreeBSD locale database (share/colldef,
   share/monetdef, share/msgdef, share/numericdef, share/timedef) has
   accumulated a total of 165 definitions (language - country-code -
   character-set triplets). The contents of the files for Western European
   languages are often low-ASCII but for Eastern European and Asian
   languages partly or fully high-ASCII. Without knowing how to display or
   interpret the character-sets, it is difficult to make sure by the
   general audience that the local language (language - country-code)
   definitions are displayed properly in various character-sets.

   Suggested approach: With the combination of the data in the Unicode
   project (whose goal is to define all the possible written characters
   and symbols on this planet) and the Common Locale Data Repository
   (whose goal is to document all the different data and definitions
   needed for the locale database), we can easily keep track of the data,
   without the need of being able to display the data in the required
   character sets or understand them fully when updates are submitted by
   third parties.

   Current status: Conversion of share/monetdef, share/msgdef,
   share/numericdef, share/timedef to the new design is completed. The
   Makefile infrastructure is converted. Regression checks are done. Most
   of the tools are in place, waiting on the import of bsdiconv to the
   base system.

Open tasks:

    1. At this moment the system is not self-hosted yet, because of the
       lack of an iconv-kind of program in the base operating system.
       Gabor@ is working on bsdiconv as a GSoC project and once that has
       been imported we will be able to perform a clean install from the
       definitions in Unicode text format to the required formats and
       character sets.

New BSD licensed debugger

   URL: http://wiki.freebsd.org/TheBsdDebugger
   URL: http://people.freebsd.org/~dfr/ngdb.git

   Contact: Doug Rabson <>

   I have been working recently on writing a new debugger, primarily for
   the FreeBSD platform. For various reasons, I have been writing it in a
   relatively obscure C-like language called D.

   So far, I have a pretty useful (if a little raw at the edges) command
   line debugger which supports ELF, Dwarf debugging information and
   (currently) 32 bit FreeBSD and Linux. The engine includes parsing and
   evaluation of arbitrary C expressions along with the usual debugging
   tools such as breakpoints, source code listing, single-step etc. All
   the code is new and BSD licensed. Currently, the thing supports
   userland debugging of i386 targets via ptrace and post-mortem core file
   debugging of the same. I will be adding amd64 support real soon (TM)
   and maybe support for GDB's remote debugging protocol later.


   URL: http://wiki.freebsd.org/NFSv4_ACLs

   Contact: Edward Tomasz Napierala <trasz at FreeBSD.org>

   During Google Summer of Code 2008, I have implemented native support
   for NFSv4 ACLs for both ZFS and UFS. Most of the code has already been
   merged to CURRENT. NFSv4 ACLs are unconditionally enabled in ZFS and
   the usual tools, like getfacl(1) and setfacl(1) can be used to view and
   change them. I plan to merge the remaining bits (UFS support) this
   month. It should be possible to MFC it in order to ship in FreeBSD

Open tasks:

    1. UFS changes review
    2. Support for NFSv4 ACLs in tar(1)

pefs - stacked cryptographic filesystem (Summer of Code 2009)

   URL: http://blogs.freebsdish.org/gleb/
   URL: http://wiki.freebsd.org/SOC2009GlebKurtsov

   Contact: Gleb Kurtsou <gk at FreeBSD.org>
   Contact: Stanislav Sedov <stas at FreeBSD.org>

   Pefs is a kernel level filesystem for transparently encrypting files on
   top of other filesystems (like zfs or ufs). It adds no extra
   information into files (unlike others), doesn't require cipher block
   sized io operations, supports per directory/file keys and key chaining,
   uses unique per file tweak for encryption. Supported algorithms: AES,
   Camellia, Salsa20. The code is ready for testing.

Open tasks:

    1. Implement encrypted name lookup/readir cache
    2. Optimize sparse files handling and file resizing

Portmaster - utility to assist users with managing ports

   URL: http://dougbarton.us/portmaster.html

   Contact: Doug Barton <dougb at FreeBSD.org>

   I am currently seeking funding for further development work on
   portmaster. There are several features that are regularly requested by
   the community (such as support for installing packages) that I would
   very much like to implement but that will take more time than I can
   reasonably volunteer to implement correctly. There is information about
   the funding proposal available at the link above.

   Meanwhile I have recently completed another round of bug fixes and
   feature enhancements. The often-requested ability to specify the -x
   (exclude) option more than once on the command line was added in
   version 2.12. Also in that version I added the --list-origins option to
   make it easier to reinstall ports after a major version upgrade, or
   install the same set of ports on another system.

Open tasks:

    1. See the funding proposal.

Release Engineering Status Report

   URL: http://www.FreeBSD.org/releng/

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

   The Release Engineering Team continues to work on FreeBSD 8.0-RELEASE.
   Public testing has turned up quite a few problems, many related to the
   low-level network (routing/ARP table) changes and their interactions
   with IPv6.

   Progress continues to be made on fixing up the issues that have been
   identified during the public testing. At this point in time we are
   shooting for two more public test builds (RC2 and RC3) followed by the
   release late October or early November.

Stream Control Transmission Protocol (SCTP)

   Contact: Randall Stewart <rrs at FreeBSD>

   SCTP continues to have minor fixes added to it as well as some new
   features. First and foremost, we now have VIMAGE and SCTP working and
   playing together. This goal was accomplished with the help of bz@, my
   new mentee tuexen@ and myself working together at the FreeBSD DevSummit
   in Cambridge, UK. Also the non-renegable SACK feature contributed by
   the university of Delaware was fixed so that now its safe to turn on
   (its sysctl). If you are using SCTP with CMT (Conncurrent Multipath
   Transfer) you will want to enable this option (CMT is also a sysctl).
   With CMT enabled you will be able to send data to all the destinations
   of an SCTP peer.

   We welcomed a new mentee (soon to be a commiter) to FreeBSD. Michael
   Tuexen is now a mentee of rrs at . Michael has been contributing to the
   SCTP work for quite some time and also moonlights as a Professor at the
   University of Muenster in Germany (when not doing SCTP coding).

The FreeBSD Dutch Documentation Project

   URL: http://www.freebsd.org/docproj/translations.html#dutch

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

   The current translations (Handbook and some articles) are kept up to
   date with the English versions. Some parts of the website have been
   translated, more work is in progress.

Open tasks:

    1. Find more volunteers for translating the remaining parts of the
       website and the FAQ.

The FreeBSD Forums

   URL: http://forums.freebsd.org/

   Contact: FreeBSD Forums Admins <forum-admins at FreeBSD.org>
   Contact: FreeBSD Forums Moderators <forum-moderators at FreeBSD.org>

   Since their public launch in November 2008, the FreeBSD Forums (the
   most recent addition to the user community and support channels for the
   FreeBSD Operating System) have witnessed a healthy and steady growth.

   The user population is now at over 8,000 registered users, who have
   participated in over 6,000 topics, containing over 40,000 posts in
   total. The sign-up rate hovers between 50-100 each week. The total
   number of visitors (including 'guests') is hard to gauge but is likely
   to be a substantial multiple of the registered userbase.

   New topics and posts are actively 'pushed out' to search engines. This
   in turn makes the Forums show up in search results more and more often,
   making it a valuable and very accessible source of information for the
   FreeBSD community.

   One of the contributing factors to the Forums' success is their
   'BSD-style' approach when it comes to administration and moderation.
   The Forums have a strong and unified identity, they are neatly divided
   into sub-forums (like 'Networking', 'Installing & Upgrading', etc.),
   very actively moderated, spam-free, and with a core group of very
   active and helpful members, dispensing many combined decades' worth of
   knowledge to starting, intermediate and professional users of FreeBSD.

   We expect the Forums to be, and to remain, a central hub in FreeBSD's
   community and support efforts.

The FreeBSD Foundation Status Report

   URL: http://www.freebsdfoundation.org

   Contact: Deb Goodkin <deb at FreeBSDFoundation.org>

   Kicking off our fall fund-raising campaign! Find out more at

   We were a sponsor for EuroBSDCon 2009, and provided travel grants to 8
   FreeBSD developers and users. We sponsored Kyiv BSD 2009, in Kiev
   Ukraine. We were also a sponsor of BSDCan, and sponsored 7 developers.
   We funded three new projects, New Console Driver by Ed Schouten, AVR32
   Support by Arnar Mar Sig, and Wireless Mesh Support by Rui Paulo, which
   has completed. We continued funding a project that is making
   improvements to the FreeBSD TCP Stack by Lawrence Stewart. The project
   that made removing disk devices with mounted filesystems on them safe,
   by Edward Napierala, is now complete.

   We recognized the following FreeBSD developers at EuroBSDCon 2009:
   Poul-Henning Kamp, Bjoern Zeeb, and Simon Nielsen. These developers
   received limited edition FreeBSD Foundation vests.

   Follow us on Twitter now!

The FreeBSD German Documentation Project

   URL: https://doc.bsdgroup.de
   URL: http://code.google.com/p/bsdcg-trans/wiki/BSDPJTAdede

   Contact: Johann Kois <jkois at FreeBSD.org>
   Contact: Benedict Reuschling <bcr at FreeBSD.org>
   Contact: Martin Wilke <miwi at FreeBSD.org>

   In May 2009, Benedict Reuschling received his commit bit to the www/de
   and doc/de_DE.ISO8859-1 trees under the mentorship of Johann Kois.
   Since then, he has been working primarily on the Handbook, updating
   existing chapters and translating new ones. Most notably, the
   filesystems and DTrace chapters have been recently translated. Bugs
   found in the original documents along the way were reported back so
   that the other translation teams could incorporate them, as well.

   Christoph Sold has put his time in translating the wiki pages of the
   BSD Certification Group into the German language. This is very helpful
   for all German people who want to take the exam and like to read the
   information about it in their native language. Daniel Seuffert has sent
   valuable corrections and bugfixes. Thanks to both of them for their
   time and efforts!

   The website is translated and updated constantly. Missing parts will be
   translated as time permits.

   We appreciate any help from volunteers in proofreading documents,
   translating new ones and keeping them up to date. Even small error
   reports are of great help for us. You can find contact information at
   the above URL.

Open tasks:

    1. Update the existing documentation set (especially the Handbook).
    2. Translate more articles to German.
    3. Read the translations. Check for problems and mistakes. Send

The FreeBSD Hungarian Documentation Project

   URL: http://www.FreeBSD.org/hu
   URL: http://www.FreeBSD.org/doc/hu
   URL: http://wiki.FreeBSD.org/HungarianDocumentationProject

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

   In the last months, we have not added new translations, although we
   have been working on the existing ones to have them updated. We need
   more translators and volunteers to keep the amount of the translated
   documentation growing, so feel free to contribute. Every line of
   submission or feedback is appreciated and highly welcome.

   If you want to join our work, please read the introduction to the
   project as well as the FDP Primer (both of them are available in

Open tasks:

    1. Translate news entries, press releases
    2. Translate Release Notes for -CURRENT and 8.X
    3. Translate articles
    4. Translate web pages
    5. Read the translations, send feedback

The FreeBSD Spanish Documentation Project

   URL: http://www.FreeBSD.org/es
   URL: http://www.FreeBSD.org/doc/es
   URL: http://www.freebsd.org/doc/es/articles/fdp-es/

   Contact: José Vicente Carrasco Vayá <carvay at FreeBSD.org>
   Contact: Gábor Kövesdán <gabor at FreeBSD.org>

   Recently, we have added one new article translation. The existing
   translations have not been updated, though. We need more human
   resources to keep up with the work and keep the translations

Open tasks:

    1. Update the Handbook translation
    2. Update the web page translation

The Newcons project

   URL: http://wiki.FreeBSD.org/Newcons
   URL: http://people.freebsd.org/~ed/newcons/patches/

   Contact: Ed Schouten <ed at FreeBSD.org>

   Some time ago I started writing a new driver for the FreeBSD kernel
   called vt(4), which is basically a replacement of syscons. There is
   still a lot of work that needs to be done but it is probably useful to
   mention what it does (and what does not).

   Right now there are just two graphics drivers for vt(4), namely a VGA
   driver for i386 and amd64 and a Microsoft Xbox graphics driver (because
   it was so easy to implement). I still have to figure out what I am
   going to do with VESA, because maybe it is better to just ignore VESA
   and figure out how hard it is to extend DRM to interact with vt(4).

   Some random features: it already supports both Unicode (UTF-8) input
   and output, it is MPSAFE and supports per-window graphical fonts of
   variable dimensions, containing an almost infinite amount of glyphs
   (both bold and regular).

Open tasks:

    1. Research needs to be done on DRM's codebase.
    2. Syscons should already be migrated to TERM=xterm to make switching
       between drivers a bit easier.

Valgrind suite on FreeBSD

   URL: http://wiki.freebsd.org/Valgrind

   Contact: Stanislav Sedov <stas at FreeBSD.org>

   The Valgrind suite in the FreeBSD ports collection has been updated to
   version 3.5.0 (the latest available version). Most of the issues of the
   previous version should be resolved now: we expect memcheck, callgrind
   and cachegrind to be fully functional on both i386 and amd64 platforms
   as well as for i386 binaries running on amd64 system. DRD/hellgrind
   should work too, though they generate a lot of false-positives for now,
   so their output is a bit messy.

Open tasks:

    1. Port exp-ptrcheck valgrind tool and fix outstanding issues that
       show up in memcheck/helgrind/DRD in the Valgrind regression tests
    2. More testing (please, help).
    3. Integrate our patches upstream.

VirtualBox on FreeBSD

   URL: http://wiki.freebsd.org/VirtualBox

   Contact: Beat Gaetzi <beat at FreeBSD.org>
   Contact: Bernhard Froehlich <decke at bluelife.at>
   Contact: Dennis Herrmann <dhn at FreeBSD.org>
   Contact: Juergen Lock <nox at FreeBSD.org>
   Contact: Martin Wilke <miwi at FreeBSD.org>

   VirtualBox has been committed to the Ports tree and synchronized with
   the latest trunk version from Sun. Several known problems are already
   fixed and some new features have been added:
     * VT-x support
     * Bridging support (Big Thanks to Fredrik Lindberg)
     * Host Serial Support
     * ACPI Support
     * Host DVD/CD access
     * SMP Support

   We would like to say thanks to all the people who helped us by
   reporting bugs and submitting fixes. We also thank the VirtualBox
   developers for their help with the ongoing effort to port VirtualBox on

More information about the freebsd-announce mailing list