<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE report PUBLIC "-//FreeBSD//DTD FreeBSD XML Database for Status
Report//EN" "http://www.FreeBSD.org/XML/www/share/sgml/statusreport.dtd">
<!-- $FreeBSD$ -->
<report>
  <date>
    <month>January-March</month>

    <year>2012</year>
  </date>

  <section>
    <title>Introduction</title>

    <p>This report covers &os;-related projects between January and March
      2012.  It is the first of the four reports planned for 2012.  This
      quarter was highlighted by releasing the next major version of &os;,
      9.0, which was finally released in the beginning of January
      2012.  The FreeBSD Project dedicates the FreeBSD 9.0-RELEASE to
      the memory of Dennis M. Ritchie, one of the founding fathers of
      the &unix; operating system.  Our release engineering team has
      been also busy with preparation of the 8.3-RELEASE, which was
      publicly announced in April.</p>

    <p>Thanks to all the reporters for the excellent work! This report
      contains 27 entries and we hope you enjoy reading it.</p>

    <p>Please note that the deadline for submissions covering the period
      between April and June 2012 is July 15th, 2012.</p>
  </section>

  <category>
    <name>proj</name>

    <description>Projects</description>
  </category>

  <category>
    <name>bin</name>

    <description>User-land Programs</description>
  </category>

  <category>
    <name>team</name>

    <description>&os; Team Reports</description>
  </category>

  <category>
    <name>kern</name>

    <description>Kernel</description>
  </category>

  <category>
    <name>net</name>

    <description>Network Infrastructure</description>
  </category>

  <category>
    <name>docs</name>

    <description>Documentation</description>
  </category>

  <category>
    <name>arch</name>

    <description>Architectures</description>
  </category>

  <category>
    <name>ports</name>

    <description>Ports</description>
  </category>

  <project cat='docs'>
    <title>The &os; Japanese Documentation Project</title>

    <contact>
      <person>
	<name>
	  <given>Hiroki</given>
	  <common>Sato</common>
	</name>
	<email>hrs@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Ryusuke</given>
	  <common>Suzuki</common>
	</name>
	<email>ryusuke@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/ja/">Japanese &os; Web Page</url>
      <url href="http://www.jp.FreeBSD.org/doc-jp/">The &os; Japanese
	Documentation Project Web Page</url>
    </links>

    <body>
      <p>The same as before, the outdated contents in the www/ja subtree
	were updated to the latest versions in the English counterpart.  The
	updating work of the outdated translations in the www/ja subtree is
	almost complete. Only the translations of the release documents
	for old releases may be outdated.</p>

      <p>During this period, we translated the 9.0-RELEASE announcement and
	published it in a timely manner.  It seems that the Japanese version
	of the release announcement is important for Japanese people as
	this page has frequently been referenced.</p>

      <p>For &os; Handbook, translation work of the "cutting-edge"
	section is still on-going.  Some updates in the "printing" and the
	"linuxemu" section were done.</p>
    </body>

    <help>
      <task>Further translation work of outdated documents in both
	doc/ja_JP.eucJP and www/ja.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>The &os; Ports Collection</title>

    <contact>
      <person>
	<name>
	  <given>Thomas</given>
	  <common>Abthorpe</common>
	</name>
	<email>portmgr-secretary@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Port</given>
	  <common>Management Team</common>
	</name>
	<email>portmgr@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/ports/" />
      <url href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing-ports/" />
      <url href="http://portsmon.FreeBSD.org/index.html" />
      <url href="http://www.FreeBSD.org/portmgr/index.html" />
      <url href="http://blogs.FreeBSDish.org/portmgr/" />
      <url href="http://www.twitter.com/freebsd_portmgr/" />
      <url href="http://www.facebook.com/portmgr" />
    </links>

    <body>
      <p>The ports tree slowly climbs above 23,000 ports.  The PR count
	still remains at about 1100.</p>

      <p>In Q1 we added 2 new committers, took in 2 commit bits for safe
	keeping, and had one committer return to ports work.</p>

      <p>The Ports Management team have been running -exp runs on an
	ongoing basis, verifying how base system updates may affect the
	ports tree, as well as providing QA runs for major ports updates.
	Of note, -exp runs were done for:</p>

      <ul>
	<li>Ports validation in the &os; 10 environment</li>
	<li>Updates to bison, libtool and libiconv</li>
	<li>Set java/opendjdk6 as default java</li>
	<li>Tests with clang set as default</li>
	<li>Update to devel/boost and friends</li>
	<li>Update of audio/sdl and friends</li>
	<li>Tests for changes in the ports licensing infrastructure</li>
	<li>Update to devel/ruby1[8|9]</li>
	<li>Update to postresql</li>
	<li>Update to apr</li>
	<li>Checks for new x11/xorg</li>
	<li>Security update to security/gnutls</li>
	<li>Ongoing validation of infrastructure with pkgng</li>
      </ul>

      <p>A lot of focus during this period was put into getting the ports
	tree into a ready state for &os; 8.3, including preparing packages
	for the release.</p>

      <p>Beat Gaetzi has been doing ongoing tests with the ports tree to
       ensure a smooth transition from CVS to Subversion.</p>
    </body>

    <help>
      <task>Looking for help getting <url
	link="http://wiki.FreeBSD.org/PortsAndClang">ports to build
	with clang</url>.</task>

      <task>Looking for help with <url
	  link="http://wiki.FreeBSD.org/PortsBrokenOnTier2Architectures">
	  Tier-2 architectures</url>.</task>

      <task><url
	  link="http://wiki.FreeBSD.org/PortsBrokenBySrcChanges">ports
	  broken by src changes</url>.</task>

      <task><url
	  link="http://wiki.FreeBSD.org/PortsFailingOnPointyhat">ports
	  failing on pointyhat</url>.</task>

      <task><url
	  link="http://wiki.FreeBSD.org/PortsFailingOnPointyhatWest">
	  ports failing on pointyhat-west</url>.</task>

      <task><url
	  link="http://wiki.FreeBSD.org/Trybroken">ports that are marked
	  as BROKEN</url>.</task>

      <task><url
	  link="http://wiki.FreeBSD.org/WhenDidThatPortBreak">When did
	  that port break</url>?</task>

      <task>Most ports PRs are assigned, we now need to focus on testing,
	committing and closing.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>The &os; Haskell Ports</title>

    <contact>
      <person>
	<name>
	  <given>G&aacute;bor</given>
	  <common>P&Aacute;LI</common>
	</name>
	<email>pgj@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Ashish</given>
	  <common>SHUKLA</common>
	</name>
	<email>ashish@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/Haskell">&os; Haskell wiki
	  page</url>

      <url href="https://github.com/freebsd-haskell/freebsd-haskell/">
	  &os; Haskell ports repository</url>

      <url href="https://github.com/freebsd-haskell/hsporter/">hsporter
	  repository</url>

      <url href="https://github.com/freebsd-haskell/hsmtk/">hsmtk
	  repository</url>
    </links>

    <body>
      <p>We are proud announce that the &os; Haskell Team has committed
	the Haskell Platform 2011.4.0.0 update, GHC 7.0.4 update, existing
	port updates, as well new port additions to &os; ports repository,
	which were pending due to freeze for 9.0-RELEASE.  Some of the new
	ports which were committed include Yesod, Happstack, wxHaskell,
	gitit, Threadscope, etc. and the count of Haskell ports in &os;
	Ports tree is now almost 300.  All of these updates will be
	available as part of upcoming 8.3-RELEASE.</p>

      <p>We started project hsporter to automate creation of new &os;
	Haskell ports from .cabal file, as well as update existing ports.
	We also published scripts which we were using in the &os; Haskell
	project under the project hsmtk.</p>
    </body>

    <help>
      <task>Test GHC to work with clang/LLVM.</task>

      <task>Add an option to the <tt>lang/ghc</tt>
	port to be able to build it with already installed GHC instead of
	requiring a separate GHC boostrap tarball.</task>

      <task>Add more ports to the Ports Collection.</task>
    </help>
  </project>

  <project cat='net'>
    <title>IPv6 Performance Analysis</title>

    <contact>
      <person>
	<name>
	  <given>Bjoern A.</given>
	  <common>Zeeb</common>
	</name>
	<email>bz@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.FreeBSD.org/~bz/bench/">Benchmarking
	  results</url>
    </links>

    <body>
      <p>IPv6 performance numbers were often seen (significantly) lower
	on &os; when compared to IPv4.  Continuing last years IPv6-only
	kernel efforts this project looked at various reasons for this and
	started fixing some.</p>

      <p>As part of the project a benchmark framework was created that
	could carry out various tests including reboots in between runs and
	gather results reproducibly without user intervention.  It
	allows regular benchmarking with minimal configuration and easy
	future extension for more benchmarks.</p>

      <p>As a result of the initial analysis, UDP locking and route
	lookups were improved, and delayed checksumming, TSO6 and LRO
	support for IPv6 were implemented.  Following this checksum
	&quot;offload&quot; for IPv6 on loopback was enabled and various
	further individual improvements, both locking and general code
	changes, as well as a reduction of the cache size footprint were
	carried out.  Some of the changes were equally applied to IPv4.</p>

      <p>Performance numbers on physical and loopback interfaces are
	on par with IPv4 when using offload support with
	TCP/IPv6, which is a huge improvement.  UDP and non-offload numbers
	on IPv6 have generally improved but are still lower than on IPv4
	and will need future work to catch up with a decade of IPv4
	benchmarking and code path optimizations.  UDP IPv6 minimal size
	send path packets per second (pps) numbers however have increased
	beating IPv4 when sending to a local discard device.</p>

      <p>This gets us really close to being able to prefer IPv6 by default
	without causing loopback performance regressions.  For physical
	interfaces, cxgb(4) in HEAD already supports IPv6 TCP offload and
	LRO/v6 support was added.  To be able to get more test results on
	different hardware, both ixgbe(4) and cxgbe(4) were also updated to
	support TSO6 and LRO with IPv6.</p>

      <p>Some of the insights gained from this work will help upcoming
	discussions on both the lower/link-layer overhaul as well as for
	the mbuf changes to prepare our stack for more, future improvements
	(ahead of time).</p>

      <p>I once again want to thank the &os; Foundation and iXsystems for
	their support of the project, as well as George Neville-Neil for
	providing review.</p>

      <p>Having set the start to close one of the biggest feature parity
	gaps left I will continue to improve IPv6 code paths and hope that
	we will see more contributions and independent results from the
	community as well soon.</p>
    </body>

    <help>
      <task>Carefully merge code changes to SVN.</task>
    </help>
  </project>

  <project cat='net'>
    <title>Multi-FIB: IPv6 Support and Other Enhancements</title>

    <contact>
      <person>
	<name>
	  <given>Bjoern A.</given>
	  <common>Zeeb</common>
	</name>
	<email>bz@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Alexander V.</given>
	  <common>Chernikov</common>
	</name>
	<email>melifaro@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://svnweb.FreeBSD.org/base/projects/multi-fibv6/">
	  SVN multi-FIB IPv6 project area</url>
    </links>

    <body>
      <p>In 2008 the multiple forwarding information base (FIB) feature
	was introduced for IPv4 allowing up to 16 distinct forwarding
	("routing") tables in the kernel.  Thanks to the sponsorship from
	Cisco Systems, Inc. this feature is now also available for IPv6 and
	one of the bigger IPv6 feature-parity gaps is closed.  The changes
	have been integrated to HEAD, were merged back to stable/9 and
	stable/8 and will be part of future releases for these branches.  A
	backport to stable/7 is also available in the project branch.  If
	more than one FIB is requested, IPv6 FIBs will be added along the
	extra IPv4 FIBs without any special configuration needed and
	programs like netstat and setfib, as well as ipfw, etc. were
	extended to seamlessly support the multi-FIB feature on both
	address families.</p>

      <p>Thanks to the help of Alexander V. Chernikov all usage of the
	multi-FIB feature is now using the boot-time variable rather than
	depending on the compile time option.  In HEAD this now allows us
	you to use the multi-FIB feature with GENERIC kernels not needing
	to recompile your own anymore.  The former kernel option can still
	be used to set a default value if desired.  Otherwise the net.fibs
	loader tunable can be used to request more than one IPv6 and IPv4
	FIB at boot time.</p>

      <p>Last, routing sockets are now aware of FIBs and will only show
	the routing messages targeted at the FIB attached to.  This allows
	route monitor or routing daemons to get selective updates for just
	a specific FIB.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>DTrace Probes for the linuxulator</title>

    <contact>
      <person>
	<name>
	  <given>Alexander</given>
	  <common>Leidinger</common>
	</name>
	<email>netchild@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Recently DTrace in the kernel was improved to be able to load
	kernel modules with static dtrace providers after the dtrace
	modules.  This allows me to commit my linuxulator specific
	static provider work to -CURRENT.</p>

      <p>Together with the linuxulator DTrace probes I developed some D
	scripts to check various code paths in the linuxulator.  Those
	scripts check various error cases which may be interesting to
	verify userland code, but also linuxulator internals like
	locks.</p>

      <p>As of this writing I'm in the process of updating a test machine
	to a more recent -current to prepare the commit.</p>
    </body>
  </project>

  <project cat='ports'>
    <title>A New linux_base Port Based Upon CentOS</title>

    <contact>
      <person>
	<name>
	  <given>Alexander</given>
	  <common>Leidinger</common>
	</name>
	<email>netchild@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>We got a PR with a linux_based port which is based upon CentOS
	6.  Currently this can only be used as a test environment, as it
	depends upon a more recent linux kernel version, than the
	linuxulator provides.</p>

      <p>As of this writing, I'm in the process of preparing a commit of
	this port.</p>
    </body>

    <help>
      <task>Repocopy by portmgr.</task>
      <task>Add conflicts in other linux_base ports.</task>
      <task>Commit the CentOS based one.</task>
      <task>Some cleanup.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>Improved hwpmc(9) Support for MIPS</title>

    <contact>
      <person>
	<name>
	  <given>Oleksandr</given>
	  <common>Tymoshenko</common>
	</name>
	<email>gonzo@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>hwpmc(9) for MIPS has been reworked.  The changes include:</p>

      <ul>
	<li>msip24k code was split to CPU-specific and arch-specific
	  parts to make adding support for new CPUs easier</li>

	<li>Added support for Octeon PMC</li>

	<li>Added sampling support for MIPS in general</li>
      </ul>
    </body>
  </project>

  <project cat='arch'>
    <title>Porting DTrace to MIPS and ARM</title>

    <contact>
      <person>
	<name>
	  <given>Oleksandr</given>
	  <common>Tymoshenko</common>
	</name>
	<email>gonzo@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>The major part of DTrace has been ported to MIPS platform.
	Supported ABIs: o32 and n64.  n32 has not been tested yet.  MIPS
	implementation passes 853 of 927 tests from DTrace test suite.</p>

      <p>The fbt provider and userland DTrace are not supported yet.</p>

      <p>The port to ARM is in progress.</p>
    </body>

    <help>
      <task>Userland DTrace support for MIPS.</task>

      <task>Investigate amount of effort required for getting fbt
	provider work at least partially.</task>

      <task>Find proper solution for cross-platform CTF data generation
	(required for ARM).</task>
    </help>
  </project>

  <project cat='ports'>
    <title>Perl Ports Testing</title>

    <contact>
      <person>
	<name>
	  <given>Steve</given>
	  <common>Wills</common>
	</name>
	<email>swills@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/Perl#Test_Dependencies" />
    </links>

    <body>
      <p>Many Perl modules in ports come with test cases included with
	their source.  This project's goal is to ensure that all these tests
	pass.  Significant progress has been made on this project.  The
	change to build perl with -pthread was committed and no issues have
	been reported.  Many ports have had missing dependencies added
	and/or other changes and approximately 90% of p5- ports pass tests.
	Work is being done on bringing testing support out of ports
	tinderbox.</p>
    </body>

    <help>
      <task>Finish work on patch to bring testing support to
	ports.</task>

      <task>Add additional support for testing other types of ports such
	as python and ruby.</task>
    </help>
  </project>

  <project cat='bin'>
    <title>Replacing the Regular Expression Code</title>

    <contact>
      <person>
	<name>
	  <given>G&aacute;bor</given>
	  <common>K&ouml;vesd&aacute;n</common>
	</name>
	<email>gabor@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://svnweb.FreeBSD.org/base/user/gabor/tre-integration/">
	  Project repo</url>

      <url href="http://laurikari.net/tre/">TRE homepage</url>

      <url href="http://www.tdk.aut.bme.hu/Files/TDK2011/POSIX-regularis-kifejezesek1.pdf">
	  A paper on the topic</url>
    </links>

    <body>
      <p>Since the last status report, there has been a significant
	progress in optimizing TRE.  The multiple pattern heuristic code is
	mostly finished and it distinguishes several different cases to
	speed up pattern matching.  It extracts literal fragments from the
	original patterns and uses a multiple pattern matching algorithm to
	find any occurrence.  GNU grep uses the Commentz-Walter algorithm,
	which is an automaton-based algorithm, while in this project, it
	has been decided to use a Wu-Manber algorithm, which is more
	efficient and also easier to implement.  In the current state, it
	does not work entirely yet and some cases, like the REG_ICASE flag
	are not yet covered.  This is the next major step to complete this
	multiple pattern interface.  In the development branch, BSD grep is
	already modified to use this new interface so it can be used for
	testing and debugging purposes.</p>
    </body>

    <help>
      <task>Finish multiple pattern heuristic regex matching.</task>

      <task>Implement GNU-specific regex extensions.</task>

      <task>Test standard-compliance and correct behavior.</task>
    </help>
  </project>

  <project cat='arch'>
    <title>&os;/powerpc on Freescale QorIQ DPAA</title>

    <contact>
      <person>
	<name>
	  <given>Michal</given>
	  <common>Dubiel</common>
	</name>
	<email>md@semihalf.com</email>
      </person>

      <person>
	<name>
	  <given>Rafal</given>
	  <common>Jaworowski</common>
	</name>
	<email>raj@semihalf.com</email>
      </person>

      <person>
	<name>
	  <given>Piotr</given>
	  <common>Ziecik</common>
	</name>
	<email>kosmo@semihalf.com</email>
      </person>
    </contact>

    <links>
      <url href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P2040">
	  P2041 product page</url>

      <url href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P3041">
	  P3041 product page</url>

      <url href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P5020">
	  P5020 product page</url>

      <url href="http://www.freescale.com/webapp/sps/site/homepage.jsp?code=64BIT&amp;fsrch=1&amp;sr=1">
	  e5500 core home page</url>
    </links>

    <body>
      <p>This work is bringing up the &os; on Freescale QorIQ Data Path
	Acceleration Architecture (DPAA) system-on-chips along with device
	drivers for integrated peripherals.  Since the last status report,
	the following support has been added:</p>

      <ul>
	<li>Ethernet (full network functionality using Regular Mode of
	  DPAA infrastructure)</li>

	<li>QorIQ P5020 SoC (e5500 core in legacy 32-bit mode)</li>

	<li>P5020 QorIQ Development System support</li>

	<li>Initial support for Enhanced SDHC</li>
      </ul>

      <p>The next step is:</p>

      <ul>
	<li>e5500 core in native 64-bit mode</li>
      </ul>

      <p>Related publications:</p>

      <ul>
	<li>Michal Dubiel, Piotr Ziecik, "&os; on Freescale QorIQ Data
	  Path Acceleration Architecture Devices", AsiaBSDCon, March 2012,
	  Tokyo, Japan.</li>
      </ul>
    </body>
  </project>

  <project cat='arch'>
    <title>NAND File System, NAND Flash Framework, NAND Simulator</title>

    <contact>
      <person>
	<name>
	  <given>Grzegorz</given>
	  <common>Bernacki</common>
	</name>
	<email>gjb@semihalf.com</email>
      </person>

      <person>
	<name>
	  <given>Mateusz</given>
	  <common>Guzik</common>
	</name>
	<email>mjg@semihalf.com</email>
      </person>
    </contact>

    <links>
      <url href="http://svnweb.FreeBSD.org/base/projects/nand/">NAND
	branch</url>
    </links>

    <body>
      <p>The NAND Flash stack consists of a driver framework for NAND
	controllers and memory chips, a NAND device simulator and a fault
	tolerant, log-structured file system, accompanied by tools,
	utilities and documentation.</p>

      <ul>
	<li>NAND FS support merged into "nand" project branch</li>

	<ul>
	  <li>NAND FS filesystem</li>

	  <li>NAND FS userland tools</li>
	</ul>

	<li>NAND Framework and NAND simulator merged into "nand" project
	  branch</li>

	<ul>
	  <li>NAND framework: nandbus, generic nand chips drivers</li>

	  <li>NAND Flash controllers (NFC) drivers for NAND Simulator and
	    Marvell MV-78100 (ARM)</li>

	  <li>NAND tool (which allows to erase, write/read pages/oob,
	    etc.</li>
	</ul>
      </ul>

      <p>The next steps include:</p>

      <ul>
	<li>Fix bugs</li>
	<li>Merge into HEAD</li>
      </ul>

      <p>Work on this project is supported by the &os; Foundation and
	Juniper Networks.</p>
    </body>
  </project>

  <project cat="arch">
    <title>&os;/arm on Various TI Boards</title>

    <contact>
      <person>
	<name>
	  <given>Ben</given>
	  <common>Gray</common>
	</name>
	<email>bgray@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Olivier</given>
	  <common>Houchard</common>
	</name>
	<email>cognet@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Damjan</given>
	  <common>Marion</common>
	</name>
	<email>dmarion@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Oleksandr</given>
	  <common>Tymoshenko</common>
	</name>
	<email>gonzo@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://svnweb.FreeBSD.org/base/projects/armv6/sys/arm/ti/" />
    </links>

    <body>
      <p>The goal of this project is to get &os; running on various
	popular boards that use TI-based SoCs like OMAP3, OMAP4, AM335x.
	Project covers some ARM generic Cortex-A components: GIC (Generic
	Interrupt Controller), PL310 L2 Cache Controller and SCU.</p>

      <p>PandaBoard (TI OMAP4430) and PandaBoard ES (OMAP4460) Dual core
	ARM Cortex-A9 board support includes: USB, onboard Ethernet over
	USB, GPIO, I2C and MMC/SD card drivers.  Board works in multiuser
	mode over NFS root.</p>

      <p>BeagleBone (TI AM3358/AM3359) single core ARM Cortex-A8 based
	board support currently includes: Ethernet, L2 cache, GPIO, I2C.
	Board works in multiuser mode over NFS root.</p>
    </body>

    <help>
      <task>Completing missing peripherals: DMA, SPI, MMC/SD, Video,
	Audio.</task>

      <task>Completing SMP support and testing.</task>

      <task>Importing BeagleBoard (OMAP3) code to SVN.</task>

      <task>Improving overall stability and performance.</task>
    </help>
  </project>

  <project cat='net'>
    <title>Atheros 802.11n Support</title>

    <contact>
      <person>
	<name>
	  <given>Adrian</given>
	  <common>Chadd</common>
	</name>
	<email>adrian@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/AdrianChadd/AtherosTxAgg" />
      <url href="http://wiki.FreeBSD.org/dev/ath(4)" />
    </links>

    <body>
      <p>802.11n station and hostap support is now fully functional, sans
	correct hostap side power saving.  TX aggregation and TX BAR
	handling is implemented.</p>

      <p>Station chip power saving is not implemented at all yet, it's not
	in the scope of this work.</p>

      <p>Testers should disable bgscan (-bgscan) as scan/bgscan will
	simply drop any traffic in the TX/RX queues, causing potential
	traffic stalls.</p>
    </body>

    <help>
      <task>Fix up hostap side power save handling.</task>

      <task>Implement filtered frames support in the driver.</task>

      <task>Fix scan/bgscan to correctly buffer and retransmit frames
	when going off channel, so frames are not just "dropped" - this
	causes issues in the aggregation sessions and may cause traffic
	stalls.</task>

      <task>Test/fix any issues with adhoc 802.11n support.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>BSD-licensed sort Utility (GNU sort Replacement)</title>

    <contact>
      <person>
	<name>
	  <given>Oleg</given>
	  <common>Moskalenko</common>
	</name>
	<email>oleg.moskalenko@citrix.com</email>
      </person>

      <person>
	<name>
	  <given>G&aacute;bor</given>
	  <common>K&ouml;vesd&aacute;n</common>
	</name>
	<email>gabor@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/cgi/cvsweb.cgi/ports/textproc/bsdsort/">
	  &os; port of BSD sort</url>

      <url href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html">
	  IEEE Std 1003.1-2008 sort specification</url>
    </links>

    <body>
      <p>Currently the BSD sort reached usable stable stage.  It is
	stable, it is as fast as the GNU sort, and it supports multi-byte
	locales (this is something that GNU sort does not do correctly).
	BSD sort has all features of GNU sort 5.3.0 (version included into
	&os;) with some extra features and bug fixes.</p>
    </body>

    <help>
      <task>Add BSD sort into HEAD as an alternative, installed as
	bsdsort.  If proven to work as expected, change it to the default
	sort version and remove GNU sort.</task>

      <task>Investigate the possibility of a multi-threaded sort
	implementation and implement it, if it proves more
	efficient.</task>

      <task>Upgrade BSD sort features to include some obscure new
	features in the latest GNU sort version 8.15.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>KDE/&os;</title>

    <contact>
      <person>
	<name>
	  <given>KDE</given>
	  <common>&os;</common>
	</name>
	<email>kde@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://FreeBSD.kde.org">KDE/&os; home page</url>
      <url href="http://FreeBSD.kde.org/area51.php">area51</url>
    </links>

    <body>
      <p>The team has made many releases and upstreamed many fixes and
	patches.  The latest round of releases include:</p>

      <ul>
	<li>KDE SC: 4.7.4 (in ports) and 4.8.0, 4.8.1, 4.8.2 (in
	  area51)</li>
	<li>Qt: 4.8.0, 4.8.1 (in area51)</li>
	<li>PyQt: 4.9.1; SIP: 4.13.2 (in area51)</li>
	<li>KDevelop: 2.3.0; KDevPlatform: 1.3.0 (in area51)</li>
	<li>Calligra: 2.3.87 (in area51)</li>
	<li>Amarok: 2.5.0</li>
	<li>CMake: 2.8.7</li>
      </ul>

      <p>Due to the prolonged port freeze the KDE team has not been able
	to update KDE in Ports as it is considered a intrusive change.</p>

      <p>The team is always looking for more testers and porters so
	please contact us at kde@FreeBSD.org and visit our home page at
	<a href="http://FreeBSD.kde.org">http://FreeBSD.kde.org</a>.</p>
    </body>

    <help>
      <task>Testing KDE SC 4.8.2.</task>

      <task>Testing KDE PIM 4.8.2.</task>

      <task>Testing phonon-gstreamer and phonon-vlc as the phonon-xine
	backend was deprecated (but will remain in the ports for
	now).</task>

      <task>Testing the Calligra beta releases (in the area51
	repository).</task>
    </help>
  </project>

  <project cat='team'>
    <title>The &os; Foundation Team Report</title>

    <contact>
      <person>
	<name>
	  <given>Deb</given>
	  <common>Goodkin</common>
	</name>
	<email>deb@FreeBSDFoundation.org</email>
      </person>
    </contact>

    <links>
      <url href="www.FreeBSDFoundation.org" />
    </links>

    <body>
      <p>The Foundation sponsored AsiaBSDCon 2012 which was held in
	Tokyo, Japan, March 22-25.  We were represented at SCALE on Jan 21
	and NELF on March 17.  This quarter we plan on being at ILF (Indiana
	LinuxFest) April 14th, BSDCan May 11-12, and SELF (Southeast
	LinuxFest) June 9.</p>

      <p>We are proud to be a gold sponsor of BSDCan 2012, which will be
	held in Ottawa, Canada, May 11-12.  We are sponsoring 14 developers
	to attend the conference.</p>

      <p>We kicked off three foundation funded projects &mdash; Growing
	Filesystems Online by Edward Tomasz Napierala, Implementing
	auditdistd daemon by Pawel Jakub Dawidek, and NAND Flash Support by
	Semihalf.</p>

      <p>We are pleased to <a
	  href="http://www.FreeBSDfoundation.org/announcements.shtml">
	announce</a> the addition of George Neville-Neil to our
	board of directors.  Deb Goodkin, our Director of
	Operations, was <a
	  href="http://bsdtalk.blogspot.com/">interviewed by
	  bsdtalk</a>.</p>

      <p>We announced a call for project proposals.  We will accept
	proposals until April 30th.  Please read <a
	  href="http://www.FreeBSDfoundation.org/documents /FreeBSD%20Foundation%20Proposals%20March%202012.pdf">
	  Project Proposal Procedures</a> to find out more.</p>

      <p>&os; 9.0 was released and we are proud to say we funded 7 of the
	new features!</p>
    </body>
  </project>

  <project cat='proj'>
    <title>GNU-Free C++11 Stack</title>

    <contact>
      <person>
	<name>
	  <given>David</given>
	  <common>Chisnall</common>
	</name>
	<email>theraven@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>Since the last status report, the combination of libc++ and
	libcxxrt has received some additional testing and gained some new
	features including support for ARM EABI.  With clang 3.1, we now
	pass all of the C++11 atomics tests.</p>

      <p>The xlocale implementation (required for libc++) has been tested
	with a variety of ports that were originally written for the Darwin
	implementation, and bugs that this testing uncovered have been
	fixed.  This should be released in 9.1.</p>

      <p>In -CURRENT, we are now building libsupc++ as a shared library.
	This provides the ABI layer and building it as a shared library
	means that we can replace it with libcxxrt easily.  If you are
	running -CURRENT, please try using libmap.conf to enable libcxxrt
	instead of libsupc++.</p>

      <p>If libstdc++ is using libcxxrt, you can now link against both
	libraries that are using libstdc++ and libc++, making the migration
	slightly easier, although you cannot pass STL objects between
	libraries using different STL versions.</p>

      <p>We still need a replacement for some parts of libgcc_s and for
	the linker, but we're on track for a BSD licensed C++ stack in
	10.0.</p>
    </body>

    <help>
      <task>Test ports with libc++.  Hopefully most will Just Work, but
	others may need patches or have a hard dependency on
	libstdc++.</task>

      <task>Enable building libc++ by default.  This is dependent upon
	building with clang, because the version of gcc in the base system
	does not support C++11 and so can not be used to build
	libc++.</task>

      <task>Removing libstdc++ from the base system and making it
	available through ports for backwards compatibility.</task>
    </help>
  </project>

  <project cat='bin'>
    <title>Clang Replacing GCC in the Base System</title>

    <contact>
      <person>
	<name>
	  <given>Brooks</given>
	  <common>Davis</common>
	</name>
	<email>brooks@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>David</given>
	  <common>Chisnall</common>
	</name>
	<email>theraven@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Dimitry</given>
	  <common>Andric</common>
	</name>
	<email>dim@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Ed</given>
	  <common>Schouten</common>
	</name>
	<email>ed@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Pawel</given>
	  <common>Worach</common>
	</name>
	<email>pawel.worach@gmail.com</email>
      </person>

      <person>
	<name>
	  <given>Roman</given>
	  <common>Divacky</common>
	</name>
	<email>rdivacky@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/BuildingFreeBSDWithClang">
	Building &os; with Clang</url>
    </links>

    <body>
      <p>Both &os; 10.0-CURRENT and 9.0-STABLE now have Clang 3.0 release
	installed by default.  At least on 10.0-CURRENT, both world and the
	GENERIC kernel can be completely built without any -Werror
	warnings.  This may not be the case for all custom kernel
	configurations yet.</p>

      <p>As of r231057, there is a WITH_CLANG_EXTRAS option for
	src.conf(5), which will enable a number of additional LLVM and
	Clang tools, such as 'llc' and 'opt'.  These tools are mainly useful
	for people that want to manipulate LLVM bitcode (.bc) and LLVM
	assembly language (.ll) files, or want to tinker with LLVM and
	Clang themselves.</p>

      <p>Also, as of r232322, there is a WITH_CLANG_IS_CC option for
	src.conf(5), which will install Clang as /usr/bin/cc, /usr/bin/c++
	and /usr/bin/cpp, making it the default system compiler.  Unless you
	also use the WITHOUT_GCC option, gcc will still be available as
	/usr/bin/gcc, /usr/bin/g++ and /usr/bin/gcpp.</p>

      <p>The intent is to switch on this option by default rather sooner
	than later, so we can start preparing for shipping 10.0-RELEASE
	with Clang as as the default system compiler, and deprecating
	gcc.</p>

      <p>In other news, we will import a newer snapshot of Clang soon,
	since upstream LLVM/Clang has already announced their 3.1 release
	will be branched April 16, 2012.  Most likely, the actual 3.1
	release will be follow a few weeks later, after which we will do
	another import.</p>

      <p>Last but not least, there are many ports people working on
	making our ports compile properly with Clang.  Fixes are checked in
	on a very regular basis now, and full exp-runs with Clang are also
	done fairly regularly.  Of course, there are always a few difficult
	cases, especially with very old software that will not even compile
	with newer versions of gcc, let alone clang.</p>
    </body>

    <help>
      <task>One of the most important tasks at the moment is to actually
	build and run your entire &os; system with Clang, as much as
	possible.  Any compile-time or run-time problems should be reported
	to the appropriate mailing list, or filed as a PR.  If you have
	patches and/or workarounds, that would be even better.</task>

      <task>Clang should have gotten better support for cross-compiling
	after 3.0, so as soon as a 3.1 version is imported, we will need to
	look at ways to get the &os; world and kernels to cross-compile.
	This is mainly of use for ARM and MIPS, which are architectures you
	usually do not want to build natively on.</task>

      <task>Help to make unwilling ports build with Clang is always
	needed, and greatly appreciated.  Please mail the maintainer of your
	favorite port with patches, or file PRs.</task>
    </help>
  </project>

  <project cat='kern'>
    <title>HDMI/DisplayPort Audio Support in HDA Sound Driver
      (snd_hda)</title>

    <contact>
      <person>
	<name>
	  <given>Alexander</given>
	  <common>Motin</common>
	</name>
	<email>mav@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>snd_hda(4) driver got number of improvements to better support
	HDMI/DisplayPort audio, such as:</p>

      <ul>
	<li>Added fetching EDID-Like Data from the CODEC and video
	  driver, describing audio capabilities of the display device.</li>

	<li>Added setting HDMI/DP-specific CODEC options, such as number
	  of channels, speakers configuration and channels mapping.</li>

	<li>Added support for more multichannel formats.  For HDMI and
	  DisplayPort device now supported: 2.0, 2.1, 3.0, 3.1, 4.0, 4.1,
	  5.0, 5.1, 6.0, 6.1, 7.0 and 7.1 channels.</li>

	<li>Added support for compressed streams passthrough with data
	  rate 6.144 - 24Mbps, such as DTS-HD Master Audio or Dolby
	  TrueHD.</li>

	<li>Added support for HDA bus multiplexing to handle higher data
	  rates (up to 92, 184 or more Mbps, depending on hardware
	  capabilities).  It allows to handle several 192/24/8 LPCM playback
	  streams simultaneously.</li>
      </ul>

      <p>Above functionality was successfully tested on NVIDIA GT210 and
	GT520 video cards with nvidia-driver-290.10 driver.  HDMI audio on
	older NVIDIA ION and Geforce 8300 boards still does not work for
	unknown reason.  There are also successful reports about Intel video
	with latest KMS-based drivers.  Support for ATI cards is limited to
	older cards, because video driver supporting newer cards does
	not support HDMI audio.</p>

      <p>The code was committed to HEAD and merged to 9-STABLE
	branch.</p>

      <p>Project sponsored by iXsystems, Inc.</p>
    </body>

    <help>
      <task>Make better use of received EDID-Like Data.</task>

      <task>Identify and fix problem with older NVIDIA cards.</task>
    </help>
  </project>

  <project cat='proj'>
    <title>The FreeNAS Project</title>

    <contact>
      <person>
	<name>
	  <given>Josh</given>
	  <common>Paetzel</common>
	</name>
	<email>jpaetzel@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Xin</given>
	  <common>Li</common>
	</name>
	<email>delphij@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeNAS.org" />
    </links>

    <body>
      <p>FreeNAS 8.0.4 was released last month, which marks the end of
	the 8.0.x branch in FreeNAS.</p>

      <p>FreeNAS 8.2.0 is in BETA currently, and will hopefully be
	released by the end of April.</p>

      <p>It features a number of improvements over the 8.0.x line,
	including plugin support, (the ability to run arbitrary software in
	jails), as well as better integration between command line ZFS and
	the GUI.</p>

      <p>Once 8.2.0 is out it will be quickly followed up with 8.3.0,
	which will include a number of driver updates as well as the long
	awaited ZFS v28.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>isci(4) SAS Driver</title>

    <contact>
      <person>
	<name>
	  <given>Jim</given>
	  <common>Harris</common>
	</name>
	<email>jimharris@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>An Intel-supported isci(4) driver, for the integrated SAS
	controller in Intel's C600 chipsets, is now available in head,
	stable/9, stable/8 and stable/7.</p>

      <p>The isci(4) driver will also be part of the &os; 8.3
	release.</p>
    </body>
  </project>

  <project cat='proj'>
    <title>Growing filesystems online</title>

    <contact>
      <person>
	<name>
	  <given>Edward Tomasz</given>
	  <common>Napierala</common>
	</name>
	<email>trasz@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>The goal of this project is to make it possible to grow a
	filesystem, both UFS and ZFS, while it's mounted read-write.  This
	includes changes to both filesystems, GEOM infrastructure, and the
	da(4) driver.  For testing purposes, I've also added resizing to
	mdconfig(8) and implemented LUN resizing in CAM Target Layer.</p>

      <p>From the system administrator point of view, this makes it
	possible to resize mounted partition using gpart(8) and then resize
	the filesystem on it using growfs(8) - all without unmounting it
	first; especially useful if it's a root filesystem.</p>

      <p>All the functionality works and is in the process of being
	refined, reviewed and merged to HEAD.</p>

      <p>This project is sponsored by The FreeBSD Foundation.</p>
    </body>

    <help>
      <task>The write suspension infrastructure (/dev/ufssuspend)
	implemented to make resizing possible makes it also possible to
	implement online tunefs(8) and fsck(8).</task>

      <task>Right now, there is no way for a GEOM class to veto resizing
	&mdash; classes are notified about resize and they can either adapt,
	or wither.  Many classes store their metadata in the last sector,
	though, so resizing a partition containing e.g. gmirror will make
	it inoperable.  It would be nice if geom_mirror(4) could veto
	resizing, so the administrator attempting to shoot himself in the
	foot would get a warning.</task>
    </help>
  </project>

  <project cat='team'>
    <title>Release Engineering Team Status Report</title>

    <contact>
      <person>
	<name>
	  <given>Release Engineering Team</given>
	</name>
	<email>re@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/releng/" />
    </links>

    <body>
      <p>On behalf of the FreeBSD Project the Release Engineering Team
	was are pleased to announce the release of the &os;
	8.3-RELEASE on April 18th, 2012.</p>

      <p>With the &os; 8.3 release cycle completed our focus shifts to
	preparing for the &os; 9.1-RELEASE.  A schedule will be posted
	shortly, with the release target date set for mid-July 2012.</p>
    </body>
  </project>

  <project cat='proj'>
    <title>&os; Services Control</title>

    <contact>
      <person>
	<name>
	  <given>Tom</given>
	  <common>Rhodes</common>
	</name>
	<email>trhodes@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.FreeBSD.org/~trhodes/fsc/" />
    </links>

    <body>
      <p>After a while of moving and getting a new job, I finally got
	back to this project (also thanks to several submissions by
	Julian Fagir), a new version has been uploaded along with a short
	description page.  The current version supports more options, a
	configuration file, and updated rc.d script.  It also includes
	manual page updates and an optional debugging mode.</p>
    </body>
  </project>

  <project cat='bin'>
    <title>The bsdconfig(8) utility</title>

    <contact>
      <person>
        <name>
          <given>Devin</given>
          <common>Teske</common>
        </name>
        <email>dteske@FreeBSD.org</email>
      </person>
      <person>
       <name>
         <given>Ron</given>
         <common>McDowell</common>
        </name>
        <email>rcm@fuzzwad.org</email>
      </person>
    </contact>

    <links>
      <url href="http://druidbsd.cvs.sf.net/viewvc/druidbsd/bsdconfig/">
	  OpenSource Development Tree</url>
      <url href="http://druidbsd.sf.net/download/bsdconfig/bsdconfig-20120512-1.svg">
	  Menu Map w/ Includes</url>
      <url href="http://druidbsd.sf.net/download/bsdconfig/bsdconfig-20120512-1i.svg">
	  Menu Map w/o Includes</url>
    </links>

    <body>
      <p>Approaching 20,000 lines of sh(1) code, the bsdconfig(8) tool is
	approximately 70% complete.  Upon completion of this project,
	bsdconfig(8) will represent (in conjunction with
	already-existing bsdinstall(8)) a complete set of utilities
	capable of purposefully deprecating sysinstall(8) in &os; 9 and
	higher.  This project has been a labor of love for Ron McDowell
	and I for over 90 days now and we are approaching the completion
	of this wonderful tool.</p>
    </body>

    <help>
      <task>
	The "installer suite" modules for acquiring/installing binary
	packages and additional distribution sets. Startup services module.
      </task>
    </help>
  </project>
</report>
