<?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>April-June</month>

    <year>2011</year>
  </date>

  <section>
    <title>Introduction</title>

    <p>This report covers &os;-related projects between April and June
      2011.  It is the second of the four reports planned for 2011.  Since
      this quarter, the work is being focused on the next major version of
      &os;, 9.0, which is to be released in September.</p>

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

    <p>Please note that the deadline for submissions covering the period
      between July and September 2011 is October 15th, 2011.</p>
  </section>

  <category>
    <name>proj</name>
    <description>Projects</description>
  </category>

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

  <category>
    <name>net</name>
    <description>Network Infrastructure</description>
  </category>

  <category>
    <name>kern</name>
    <description>Kernel</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>

  <category>
    <name>misc</name>
    <description>Miscellaneous</description>
  </category>

  <category>
    <name>gsoc</name>
    <description>Google Summer of Code</description>
  </category>

  <project cat='gsoc'>
    <title>Disk device error counters</title>

    <contact>
      <person>
	<name>
	  <given>Oleksandr</given>
	  <common>Dudinskyi</common>
	</name>
	<email>dudinskyj@gmail.com</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/Disk%20device%20error%20counters">
	  Wiki page</url>
    </links>

    <body>
      <p>Currently, I work on schedule, I printed the information of
	disk error in utility iostat option -E.  While only displays five
	types of errors.  Further analysis will give me the opportunity to
	identify other types of disk errors.</p>
    </body>

    <help>
      <task>Search other type of error and the place of their
	registration.</task>

      <task>Maybe find a better place registration of errors than
	xpt_done().</task>
    </help>
  </project>

  <project cat='docs'>
    <title>&os; June 6th, 2011 Doc Sprint</title>

    <contact>
      <person>
	<name>
	  <given>Benedict</given>
	  <common>Reuschling</common>
	</name>
	<email>bcr@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Dru</given>
	  <common>Lavigne</common>
	</name>
	<email>dru@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/DocSprints">The DocSprints page
	  in the &os; wiki</url>

      <url href="http://people.FreeBSD.org/~bcr/doc/sprints/20110606-final.html">
	 Results of the June 6 Doc Sprint</url>

      <url href="http://people.FreeBSD.org/~linimon/annotated_prs.docsprint.html">
	  Closed PRs during the doc sprint</url>

      <url href="http://openhelpconference.com/">Website of the Open Help
	  conference</url>
    </links>

    <body>
      <p>On June 6, the &os; documentation project held a doc sprint
	where a number of documentation issues were discussed.  The sprint
	took place primarily in IRC channel #bsddocs on EFNet.  Notes were
	taken in an Etherpad document where all participants could
	concurrently edit them in an easy to use interface.  Parallel to the
	discussion, a number of doc problem reports have been closed.  There
	are still some doc PRs that have been identified that could also be
	closed, because their original issue was already committed but the
	PR is still open.  This needs to be investigated on a case by case
	basis.</p>

      <p>Dru Lavigne brought in her experiences from the Open Help
	conference that she was attending during the sprint.  It would be
	good to have some &os; documentation people at a future Open
	Help conference to exchange ideas with other open source
	documentation projects and how they go about doing their work.</p>

      <p>The primary discussion focused on the issues that have been
	talked about at the documentation working group at BSDCan's
	DevSummit in May.  Subjects like converting the documentation
	repository from CVS to SVN, the move from DocBook SGML to XML-based
	documentation as well as other formats like RST (re-restructured
	text), and publication efforts of the handbook in electronic and
	dead-tree form were thoroughly debated.</p>

      <p>Overall participation was good, but we would like to have more
	documentation folks to participate in future sprints.  The next
	sprint is planned before EuroBSDCon 2011 and will be announced in
	time so that interested people can set aside some time for it.  We
	also plan to include different time zones so that we can have more
	input from various areas.  We hope to establish these kind of
	sprints on a regular basis to deal with documentation issues that
	affect the whole community.</p>

      <p>Thanks to everyone who participated and helped bring some of the
	issues we talked about forward.</p>
    </body>

    <help>
      <task>Schedule the next documentation sprint before the next
	EuroBSDCon and include different timezones.</task>

      <task>Work on the todo items identified during the sprint.</task>

      <task>Resolve open documentation problem reports identified to be
	fixed, but still open for some reason.</task>
    </help>
  </project>

  <project cat='gsoc'>
    <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://wiki.FreeBSD.org/G%C3%A1borSoC2011">Wiki
	page</url>
    </links>

    <body>
      <p>The current regular expression code in libc is quite outdated
	and does not support wide characters.  There are various open
	source regular expression libraries but replacing the code is
	not a simple task because there are quite many considerations
	and requirements.  The best candidate is TRE, which is a
	BSD-licensed, supports wide and multibyte characters, conforms
	to POSIX and it performs well compared to another available
	alternatives, so the work has been started with TRE.  Apart
	from the replacement, the plan is to implement heuristical
	matching, which will speed up the pattern matching
	significantly.  Besides, grep and diff in the base system have
	been using the GNU regex code, which has a more permissive
	syntax.  It is desired to have a single regex engine in the
	base system, so the GNU syntax has to be implemented (as an
	optional feature), as well.</p>

      <p>So far, a fast string matching algorithm has been added,
	which is a variant of the Turbo Boyer-Moore algorithm.  It has
	been slightly tuned to support not only literal patterns but
	patterns containing $^. symbols.  This algorithm is used
	automatically when the pattern makes it possible.</p>

      <p>Besides, heuristic matching has also been implemented.  If
	the fast matcher cannot be applied directly, it parses the
	pattern and separates the fixed-length prefix and suffix of
	the pattern.  Then it can be used to locate the possibly
	matching regions of the text, using a more efficient algorithm
	than the full regex NFA and the latter only has to be applied
	to the narrow context that has been located.</p>
    </body>

    <help>
      <task>Implement GNU regex syntax.</task>

      <task>Add test suite GNU-specific behavior and also add some
	tests for locale-specific behavior.</task>

      <task>Test and review the code.  Contact the author and check if
	these improvements can be added to the upstream code so that
	more people can benefit from this.</task>
    </help>
  </project>

  <project cat='team'>
    <title>ArabBSD</title>

    <contact>
      <person>
	<name>
	  <given>Mohammed</given>
	  <common>Farrag</common>
	</name>
	<email>mfarrag@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="https://sites.google.com/site/arabbsd/">Official
	  Website</url>
    </links>

    <body>
      <p>&os; Awareness, Handbook Translation and &os; Kernel
	Development Summer Course.</p>
    </body>

    <help>
      <task>&os; Kernel Development Summer Course.</task>
    </help>
  </project>

  <project cat='arch'>
    <title>&os;/powerpc on AppliedMicro APM86290</title>

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

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

    <body>
      <p>The APM86290 system-on-chip device is a member of AppliedMicro's
	PACKETpro family of embedded processors.  The chip includes two
	Power Architecture PPC465 processor cores, which are compliant with
	Book-E specification of the architecture, and a number of
	integrated peripherals.  This work is extending current Book-E
	support in &os; towards PPC4xx processors variation along with
	device drivers for integrated peripherials.  Current &os;
	APM86290 support includes:</p>

      <ul>
	<li>Booting via U-Boot bootloader</li>
	<li>Support for PPC465 core</li>
	<li>L1 cache</li>
	<li>Serial console (UART)</li>
      </ul>

      <p>Next steps:</p>
      <ul>
	<li>Interrupt controller</li>
	<li>EHCI USB driver attachment</li>
	<li>Ethernet controller</li>
	<li>Queue Manager/Traffic Manager</li>
	<li>L2 cache support</li>
      </ul>
    </body>
  </project>

  <project cat='arch'>
    <title>&os;/arm on Marvell Armada XP</title>

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

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

    <body>
      <p>Marvell Armada XP is a complete system-on-chip solution based on
	Sheeva embedded CPU.  These devices integrate up to four ARMv6/v7
	compliant Sheeva CPU cores with shared L2 cache.  This work is
	extending &os;/arm infrastructure towards support for recent ARM
	architecture variations along with a basic set of device drivers
	for integrated peripherials.  Current &os; suppport for Armada XP
	includes:</p>

      <ul>
	<li>Booting via U-Boot bootloader</li>
	<li>ARMv6/v7 support</li>
	<ul>
	  <li>Reworked CPU indentification scheme</li>
	  <li>New cache identification scheme</li>
	  <li>Support for PIPT caches</li>
	  <li>Reworked PMAP for ARMv6/v7 features</li>
	</ul>
	<li>Serial console support (UART)</li>
	<li>Interrupt controller</li>
	<li>Integrated timers</li>
	<li>USB driver attachment</li>
	<li>Ethernet controller driver</li>
      </ul>

      <p>Next steps:</p>
      <ul>
	<li>L2 cache support</li>
	<li>SMP support</li>
	<li>PCI-Express and SATA drivers</li>
      </ul>
    </body>
  </project>

  <project cat='misc'>
    <title>bsd_day(2011)</title>

    <contact>
      <person>
	<name>
	  <given>Martin</given>
	  <common>Matuska</common>
	</name>
	<email>mm@FreeBSD.org</email>
      </person>

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

    <links>
      <url href="http://bsdday.eu/2011" />
    </links>

    <body>
      <p>The purpose of this one-day event is to gather Central European
	developers of today's open-source BSD systems to popularize their
	work and their organizations, and to meet each other in the real
	life.  We would also like to motivate potential future developers
	and users, especially undergraduate university students to work
	with BSD systems.</p>

      <p>This year's BSD-Day will be held in Bratislava, Slovakia at
	Slovak University of Technology, Faculty of Electrical
	Engineering and Information Technology on November 5, 2011.</p>

      <p>Everybody is welcome!</p>
    </body>

    <help>
      <task>Apply.  We are looking for you!</task>
    </help>
  </project>

  <project cat='net'>
    <title>TCP User Timeout Option (UTO)</title>

    <contact>
      <person>
	<name>
	  <given>Catalin</given>
	  <common>Nicutar</common>
	</name>
	<email>cnicutar@FreeBSD.org</email>
      </person>

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

    <links>
      <url href="http://wiki.FreeBSD.org/CatalinNicutar/TCPUTO">Project
	  Wiki</url>

      <url href="http://p4web.FreeBSD.org/@md=d&amp;cd=//depot/projects/soc2011/&amp;dw=u&amp;c=kml@//depot/projects/soc2011/cnicutar_tcputo_8/?ac=83">
	  Repository</url>
    </links>

    <body>
      <p>The goal of the User Timeout option is to allow an application
	to tweak the time TCP waits for acknowledgements.  Using UTO, an
	application can choose the exact time it is willing to wait for
	data to be acknowledged.  Also, an application can suggest to its
	peer the time it should wait before dropping the connection (the
	peer may or may not allow this).</p>

      <p>As an example, a SSH client can request a large timeout (4
	hours) for a connection.  After some time the client is
	disconnected, reconnecting 2 hours later (with the same IP).  Due
	to UTO, the connection should still be alive and any lost data
	should be retransmitted.</p>

      <p>Current testing is done on TCP over IPv4.  Timeouts can be
	limited by global sysctls and an application can choose how to
	send or accept timeout values via socket options.  In addition to
	regression tests, support has been added to telnet, ssh and
	netcat.</p>
    </body>

    <help>
      <task>Regression tests for TCP over IPv6.</task>

      <task>Add support to more userland applications.</task>

      <task>Implement strategies and regression tests to handle and
	simulate DoS scenarios.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>Portbuilder</title>

    <contact>
      <person>
	<name>
	  <given>David</given>
	  <common>Naylor</common>
	</name>
	<email>naylor.b.david@gmail.com</email>
      </person>
    </contact>

    <links>
      <url href="https://github.com/DragonSA/portbuilder">GIT
	  Repository</url>

      <url href="https://github.com/DragonSA/portbuilder/blob/0.1.3/README">
	  README</url>

      <url href="https://github.com/DragonSA/portbuilder/blob/0.1.3/TODO">
	  TODO</url>
    </links>

    <body>
      <p>I would like to introduce a project that has been in the works
	for the last 3 years.  From the projects README:</p>

      <p>A concurrent ports building tool.  Although &os; ports
	supports building a single port using multiple jobs (via
	MAKE_JOBS), it cannot build multiple ports concurrently.  This tool
	accomplishes just that.</p>

      <p>Some of its key features:</p>

      <ul>
	<li>Concurrent port building</li>
	<li>Load control</li>
	<li>Top like UI</li>
	<li>Persistent builds (by default)</li>
      </ul>

      <p>Portbuilder originally used threads to control each port at each
	stage of the build however the required locks resulting in
	deadlocks, and some ports would not build correctly.  To resolve
	those issues a rewrite was done to use only a single thread, making
	all locking code redundant.  Thanks to the use of kqueue(2) the
	overhead of managing concurrent port builds is minimal.  Further
	work to reduce that overhead is underway.</p>

      <p>Portbuilder is installable from ports under
	ports-mgmt/portbuilder, see the README for usage details.  Please
	note that this is considered BETA quality, that the feature set and
	API are expected to change, and that portbuilder may crash or fail
	to behave properly.</p>
    </body>

    <help>
      <task>Wiki page.</task>

      <task>Testing.</task>

      <task>See TODO.</task>
    </help>
  </project>

  <project cat='net'>
    <title>IPv6 RA Handling Improvements</title>

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

    <body>
      <p>ICMPv6 Router Advertisement (RA) message is a part of IPv6
	Neighbor Discovery Protocol in RFC 4861 and takes an important role
	in IPv6 basic functionality.  &os; supports it in the kernel, and
	the rtadvd(8) and rtsold(8) programs derived from KAME project
	handle it in userland.</p>

      <p>This small project aims to improve the current RA handling by
	removing limitations and adding new functionality found in the
	latest RFCs.  Changes committed are as follows:</p>

      <ul>
	<li>&os; now supports RA receiving even if
	  net.inet6.ip6.forwarding=1 and enabling/disabling the receiving
	  in a per-interface basis.  The traditional "host" and "router"
	  node model in IPv6 RFCs is translated into a concept of
	  "RA-receiving interfaces" and "RA-sending interfaces" in
	  &os;&nbsp;9.0 or later, not depending only on system-wide IP
	  forwarding capability.  This is useful for a system with
	  multiple IPv6-capable interfaces (such as a customer-edge
	  router) which require SLAAC (Stateless Address
	  Autoconfiguration) feature described in RFC 4862.</li>

	<li>The rtadvd(8) and rtsold(8) programs now support IPv6 Router
	  Advertisement Options for DNS Configuration in RFC 6106.  This
	  enables updating /etc/resolv.conf by using RAs.</li>

	<li>The rtadvd(8) daemon now supports dynamically-added/removed
	  interfaces.  Although it was needed that all of RA-sending
	  interfaces exist before the daemon was invoked, the new version
	  no longer requires it.  When a new interface arrived, it will be
	  configured on the fly.</li>

	<li>The rtadvctl(8) utility has been added.  This displays
	  RA-sending status on each interface and provides a way to
	  control the daemon.  This utility makes system administration
	  much easier.</li>
      </ul>

      <p>All of the changes described above have already been committed
	to 9-CURRENT and a part of them will be merged to 8-STABLE.</p>
    </body>
  </project>

  <project cat='net'>
    <title>DIstributed Firewall and Flow-shaper Using Statistical
      Evidence (DIFFUSE)</title>

    <contact>
      <person>
	<name>
	  <given>Sebastian</given>
	  <common>Zander</common>
	</name>
	<email>szander@swin.edu.au</email>
      </person>

      <person>
	<name>
	  <given>Grenville</given>
	  <common>Armitage</common>
	</name>
	<email>garmitage@swin.edu.au</email>
      </person>
    </contact>

    <links>
      <url href="http://caia.swin.edu.au/urp/diffuse/" />
      <url href="http://caia.swin.edu.au/urp/diffuse/downloads.html" />
    </links>

    <body>
      <p>DIFFUSE is a system enabling &os;'s IPFW firewall subsystem
	to classify IP traffic based on statistical traffic properties.</p>

      <p>With DIFFUSE, IPFW computes statistics (such as packet lengths
	or inter-packet time intervals) for observed flows, and uses ML
	(machine learning) to classify flows into classes.  In addition to
	traditional packet inspection rules, IPFW rules may now also be
	expressed in terms of traffic statistics or classes identified by
	ML classification.  This can be helpful when direct packet
	inspection is problematic (perhaps for administrative reasons, or
	because port numbers do not reliably identify applications).</p>

      <p>DIFFUSE also enables one instance of IPFW to send flow
	information and classes to other IPFW instances, which then can act
	on such traffic (e.g. prioritise, accept, deny, etc.) according to
	its class.  This allows for distributed architectures, where
	classification at one location in your network is used to control
	fire-walling or rate-shaping actions at other locations.</p>

      <p>The DIFFUSE prototype is a set of patches for &os;-CURRENT
	that can be downloaded from the project's web site.  The web site
	also contains a more comprehensive introduction, as well as links
	to related work and documentation.</p>

      <p>In July 2011, we released DIFFUSE v0.4.  This release contains a
	number of bug fixes and new features.  Most notably we improved the
	functionality of the tools used for training classification models,
	and performing offline analysis.</p>

      <p>DIFFUSE v0.4 is the last release, as the DIFFUSE project has
	concluded.  However, we may release bug fixes in the future if
	necessary.</p>
    </body>
  </project>

  <project cat="kern">
    <title>Status Report for NFS</title>

    <contact>
      <person>
	<name>
	  <given>Rick</given>
	  <common>Macklem</common>
	</name>
	<email>rmacklem@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>The new NFS client and server are no longer considered
	experimental and will most likely be the default for &os;&nbsp;9.0.
	Included is support for NFSv4.0 as well as NFSv3 and NFSv2.  The
	NFSv4.0 support was tested at a recent NFSv4 Interoperability
	Bakeathon held at CITI of the University of Michigan.  Also tested
	at the Bakeathon was a basic client implementation of NFSv4.1 which
	will soon be available as a test patch against the &os;&nbsp;9.0
	kernel sources.  If you are interested in testing NFSv4.1, stay
	tuned to the freebsd-fs@FreeBSD.org mailing list.
	zkirsch@FreeBSD.org and friends will be taking on a majority of the
	NFSv4 server work while I concentrate on the client, with hopes
	that the NFSv4.1 support will mature over the next year or so.</p>

      <p>I will also be making a patch for an experimental aggressive
	client side on-disk caching mechanism for NFSv4 I call Packrats
	available.  An announcement about this will be made on
	freebsd-fs@FreeBSD.org as well.</p>
    </body>
  </project>

  <project cat='proj'>
    <title>ZFS pool version 28</title>

    <contact>
      <person>
	<name>
	  <given>Pawel Jakub</given>
	  <common>Dawidek</common>
	</name>
	<email>pjd@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Martin</given>
	  <common>Matuska</common>
	</name>
	<email>mm@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>ZFS pool version 28 has been merged into 8-STABLE as of
	June 6, 2011.  In addition, several bugfixes and improvements
	from the Illumos project have been imported.</p>
    </body>

    <help>
      <task>Investigation of ZFS problem reports.</task>
    </help>
  </project>

  <project cat='proj'>
    <title>libarchive, bsdtar, bsdcpio</title>

    <contact>
      <person>
	<name>
	  <given>Tim</given>
	  <common>Kientzle</common>
	</name>
	<email>kientzle@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Michihiro</given>
	  <common>Nakajima</common>
	</name>
	<email>ggcueroad@gmail.com</email>
      </person>
    </contact>

    <links>
      <url href="http://code.google.com/p/libarchive" />
    </links>

    <body>
      <p>Libarchive, bsdtar and bsdcpio in 9-CURRENT have been updated to
	version 2.8.4 (thanks to mm@FreeBSD.org) and bsdtar now supports
	extracting XAR and RPM archive formats.</p>

      <p>There is ongoing development in trunk with many improvements
	including support for new formats both on the read (e.g. cab, lha,
	rar) and write parts (e.g. iso9660, xar).</p>
    </body>
  </project>

  <project cat='net'>
    <title>&os; IPv6-only Support</title>

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

    <links>
      <url href="http://www.FreeBSDFoundation.org/project%20announcements.shtml#Bjoern">
	  &os; Foundation project announcement</url>

      <url href="http://www.ixsystems.com/ix/media/freebsd-foundation-and-ixsystems-announce-ipv6-only-testing-versions-of-freebsd-and-pc-bsd">
	  &os; Foundation and iXsystems press release</url>

      <url href="http://www.FreeBSD.org/ipv6/ipv6only.html">&os;
	  IPv6-only Support</url>

      <url href="http://www.pcbsd.org/IPv6">PC-BSD IPv6</url>
    </links>

    <body>
      <p>As a follow-up work to the no-IP kernel, a &os; IPv6-only
	prototype kernel was build beginning of 2010.  This work was now
	carried on and merged to mainstream &os; and will be part of the
	upcoming 9.0-RELEASE allowing for custom no-IPv4 kernels to be
	built.  In addition IPv6 installation and configuration support for
	&os; and PC-BSD were improved.</p>

      <p>An IPv6-only kernel and continued efforts to build world without
	IPv4, like &os; had supported compiling out IPv6 for a long
	time, will allow easier IPv6 validation work to happen.  This will
	not only help &os; or &os;-derived commercial product
	builders but we are also hoping to motivate other Open Source
	projects to test their software for IPv6-readiness on &os; or
	PC-BSD.</p>

      <p>We have provided and will continue to provide IPv6-only
	snapshots for &os;.  In IPv6-only PC-BSD snapshots have been
	released to provide a great Open Source desktop environment to test
	GUI applications for IPv6-readiness as well.</p>

      <p>I would like to thank the &os; Foundation and iXsystems for their
	support of the project, as well as George Neville-Neil for
	providing review and Kris Moore for helping on the PC-BSD
	integration and building and providing the PC-BSD snapshots.</p>
    </body>
  </project>

  <project cat='gsoc'>
    <title>Google Summer of Code</title>

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

      <person>
	<name>
	  <given>Robert</given>
	  <common>Watson</common>
	</name>
	<email>rwatson@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/SummerOfCode2011">Summer of Code
	  2011 Project Wiki Pages</url>
    </links>

    <body>
      <p>We are happy to be participating in our 7th Google Summer of
	Code.  After the mid-term evaluation we have 15 projects working
	towards the final evaluation.  You can see the latest status on
	student's individual wiki pages or by subscribing to the soc-status
	mailing list.</p>
    </body>
  </project>

  <project cat='ports'>
    <title>Chromium</title>

    <contact>
      <person>
	<name>
	  <given>Chromium on &os; Team</given>
	</name>
	<email>chromium@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.chromium.org/Home">Main project site</url>

      <url href="http://trillian.chruetertee.ch/chromium">&os;
	  porting site</url>
    </links>

    <body>
      <p>During the last quarter we have been keeping the Chromium
	browser up to date, with new major releases being imported into the
	Ports Collection the same day as the upstream release.  As time
	passes by, more patches are incorporated or otherwise became
	obsolete by virtue of upstream code cleanups.  Version 13 is already
	available from the Chruetertee repository, with 70 patches
	less than version 12.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>Overhaul of the mii(4)-subsystem</title>

    <contact>
      <person>
	<name>
	  <given>Marius</given>
	  <common>Strobl</common>
	</name>
	<email>marius@FreeBSD.org</email>
      </person>
    </contact>

    <links>
    </links>

    <body>
      <p>The mii(4)-subsystem has been overhauled and fixes and
	enhancements from NetBSD/OpenBSD since mii(4) originally has been
	ported over have been merged.  As a result a lot of code duplication
	and hacks have been removed from the PHY drivers and we are now
	able again to share the miidevs file with NetBSD.  Due to KPI
	breakages the majority of this work will not be merged back into
	8-STABLE and earlier.</p>

      <p>Additionally shorthand aliases for common media+option combinations
	as announced by mii(4) have been added to the ifmedia code so that
	now one can actually supply the media strings found in the dmesg
	output to ifconfig(8).  Support for this will be merged back to
	8-STABLE prior to 8.3-RELEASE.</p>
    </body>
  </project>

  <project cat='arch'>
    <title>&os;/sparc64</title>

    <contact>
      <person>
	<name>
	  <given>Marius</given>
	  <common>Strobl</common>
	</name>
	<email>marius@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <ul>
	<li>The iommu(4) driver has been changed to take advantage of
	  the streaming buffers of the host-PCI and host-SBus bridges if
	  present, which in at least some configurations results in a
	  modest performance improvement due to the caching of DMA
	  transactions.  As a prerequisite, the bus_dma(9) usage of all
	  drivers compiled as part of the sparc64 GENERIC kernel has been
	  reviewed and fixed and in case of sound(4) and sym(4) at least
	  worked around as necessary in order to be able to use the
	  streaming buffers.
	  <br />

	  Support for this will be merged back to 8-STABLE prior to
	  8.3-RELEASE.</li>

	<li>Following the update of the in-tree binutils to 2.17.50,
	  which now for the first time include support for GNUTLS on
	  sparc64 in the base, support for TLS relocations on sparc64 was
	  added to rtld(1) and enabled in the base GCC and
	  malloc(3).</li>

	<li>Support and a workaround necessary for Sun Fire V890
	  equipped with UltraSPARC-IV was added.
	  <br />

	  Support for these will be merged back to 8-STABLE prior to
	  8.3-RELEASE.</li>

	<li>The schizo(4) driver has been updated to also support the
	  XMITS Fireplane/Safari to PCI-X bridges and a workaround for
	  Casinni/Skyhawk combinations has been added.  Chances are that
	  the latter solves the crashes seen when using the on-board
	  Casinni NICs of Sun Fire V480 equipped with centerplanes other
	  than 501-6780 or 501-6790.
	  <br />

	  These changes have been merged back to 8-STABLE and will be
	  part of 8.3-RELEASE.</li>

	<li>As part of the largeSMP project which had the goal of
	  supporting more than 32 CPU cores in &os; several parts of
	  the sparc64 specific code had to be adapted mainly in the
	  assembler bits but as a result now also supports more than 32
	  CPU cores.</li>

	<li>On machines where we do not need to lock the kernel TSB
	  into the dTLB and thus may basically use the entire 64-bit
	  kernel address space, i.e. on machines equipped with
	  UltraSPARC-III+ and greater CPUs, the kernel virtual memory was
	  increased to not be limited by VM_KMEM_SIZE_MAX and
	  VM_KMEM_SIZE_SCALE decreased to 1 allowing kernel to use more
	  memory as for example useful for ZFS.
	  <br />

	  These changes will be merged back to 8-STABLE prior to
	  8.3-RELEASE.</li>

	<li>The shortcut taken in the code responsible for flushing
	  user mappings from the TLBs of UltraSPARC-III and greater CPUs
	  turned out to not scale well on MP-systems with more than 8 CPU
	  cores and thus was re-written.  As a result it now scales up to
	  at least 16-way machines.
	  <br />

	  These changes will be merged back to 8-STABLE prior to
	  8.3-RELEASE.</li>
      </ul>
    </body>
  </project>

  <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
	  Pages</url>

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

    <body>
      <p>The www/ja and doc/ja_JP.eucJP/books/handbook subtrees have
	constantly been updated.  During this period, many part of out-dated
	contents in the www/ja subtree were updated to the latest versions
	in the English counterpart.  Thus most of the files in the subtree
	are already synchronized with www/en at this moment, and this
	updating work will be finished within this year.</p>

      <p>For &os; Handbook, translation work for the kernelconfig section
	was just started.  In addition, we are planning to translate the
	upcoming release announcement because it is also important for
	Japanese people.</p>
    </body>

    <help>
      <task>Further translation work for outdated and/or non-translated
	documents in both doc/ja_JP.eucJP and www/ja.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>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/group.php?gid=135441496471197" />
      <url href="http://FreeBSDFoundation.blogspot.com/2011/06/bsdcan-trip-report-baptiste-daroussin.html" />
      <url href="http://FreeBSDFoundation.blogspot.com/2011/06/bsdcan-trip-report-julien-laffaye.html" />
      <url href="http://FreeBSDFoundation.blogspot.com/2011/06/bsdcan-trip-report-thomas-abthorpe.html" />
      <url href="http://blogs.FreeBSDish.org/portmgr/2011/05/26/thankyoufoundation/" />
    </links>

    <body>
      <p>The ports tree slowly moves up closer to 23,000.  The PR count
	still remains at about 1100.</p>

      <p>In Q2 we added 3 new committers, took in 2 commit bits for safe
	keeping, and added a new member to portmgr.</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/154044, -exp run to update x11-toolkits/open-motif</li>

	<li>ports/155269, -exp run to fix problem with base/ports
	  ncurses</li>

	<li>ports/155215, -exp run to update gmake, completed by
	  linimon</li>

	<li>ports/156575, -exp run to generate a subset of ports in
	  INDEX</li>

	<li>ports/155983, -exp run to reroot md5 in /sbin</li>

	<li>ports/139116, -exp run to call target "install-rc-script"
	  before "post-install"</li>

	<li>ports/155510, -exp run to remove support for pre 7.X</li>

	<li>ports/156533, -exp run to patch bsd.apache.mk</li>

	<li>ports/152498, -exp run to improve USERS/GROUPS handling</li>

	<li>flz has been performing clang -exp runs</li>

	<li>erwin performed -exp run for perl 5.12.4 update</li>

	<li>pav performed multiple -exp runs for gtk3</li>
      </ul>
    </body>

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

      <task>Looking for help fixing <a
	  href="http://wiki.FreeBSD.org/PortsBrokenOnCurrent">ports broken
	on CURRENT</a>.  (List needs updating, too)</task>

      <task>Looking for help with <a
	  href="http://wiki.FreeBSD.org/PortsBrokenOnTier2Architectures">
	Tier-2 architectures</a>.  (List needs updating, too)</task>

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

  <project cat='gsoc'>
    <title>Capsicum adaptation and core libraries</title>

    <contact>
      <person>
	<name>
	  <given>Ilya</given>
	  <common>Bakulin</common>
	</name>
	<email>kibab@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.cl.cam.ac.uk/research/security/capsicum" />
      <url href="http://wiki.FreeBSD.org/SOC2011IlyaBakulin" />
    </links>

    <body>
      <p>Some applications from the base system received sandboxing
	support, current task is to adapt lightweight resolver daemon for
	using it in sandboxes &mdash; this fixes problems with applications that
	need to convert IP addresses into domain names while in
	sandbox.</p>
    </body>

    <help>
      <task>Add sandboxing to even more applications in the base
	system.</task>

      <task>Help Jonathan Anderson and Robert Watson to merge
	&os;-Capsicum into &os;-HEAD.</task>
    </help>
  </project>

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

    <contact>
      <person>
	<name>
	  <given>G&aacute;bor J&aacute;nos</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>

      <person>
	<name>
	  <given>Giuseppe</given>
	  <common>Pilichi</common>
	</name>
	<email>jacula@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="http://haskell.org/mailman/listinfo/freebsd-haskell/">
	  &os; Haskell mailing list</url>
    </links>

    <body>
      <p>We are proud to announce that the &os; Haskell Team has
	committed Haskell Platform 2011.2.0.1 to the &os; Ports Collection,
	as well as updated existing ports to their latest stable versions.
	Apart from the ports officially available there, many ports (Snap
	web framework, Leksah, and their dependencies) are still waiting to
	be added.  Any users who like to get early access to them, please
	refer to the instructions at <a
	  href="https://github.com/freebsd-haskell/freebsd-haskell/">our
	development repository</a>.</p>
    </body>

    <help>
      <task>Update Haskell Platform (along with GHC) to 2011.4.0.0 as
	soon as it gets out.</task>

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

      <task>Create a port for Happstack.</task>

      <task>Create a port for gitit.</task>
    </help>
  </project>

  <project cat='net'>
    <title>netmap</title>

    <contact>
      <person>
	<name>
	  <given>Luigi</given>
	  <common>Rizzo</common>
	</name>
	<email>rizzo@iet.unipi.it</email>
      </person>
    </contact>

    <links>
      <url href="http://info.iet.unipi.it/~luigi/netmap/" />
    </links>

    <body>
      <p>netmap is a novel framework to achieve wire-speed packet
	processing in &os;, while retaining the safety and richness of
	features provided by the user space environment, and using only
	standard system calls.  With netmap, it takes as little as 70 clock
	cycles to move one packet between the user program and the wire.  As
	an example, a single core running at 900MHz can generate the
	14.8Mpps that saturate a 10GigE interface.  This is a 5-10x
	improvement over the use of a standard device driver.  netmap is
	implemented with a relatively small kernel device driver (less than
	2000 lines of code), plus individual network card patches (300-500
	lines each; currently supported are Intel 1 and 10 Gbit cards, and
	RealTek 1 Gbit cards).  No special user libraries are needed,
	although we have a small libpcap-over-netmap which enables the use
	of existing applications on top of the new API with no source or
	binary modifications.  The netmap home page contains a more detailed
	description of the project, source code, papers and slides.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>Intel GPU Driver</title>

    <contact>
      <person>
	<name>
	  <given>Konstantin</given>
	  <common>Belousov</common>
	</name>
	<email>kib@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/Intel_GPU" />
    </links>

    <body>
      <p>The &os; Foundation sponsored project to port the Linux
	kernel-mode driver for Intel GPU progressed to the point where some
	machines can use Xorg with ddx driver from the git head and latest
	Mesa.  On my test machine I was able to run uhexen2 and
	ioquake3.</p>

      <p>Nonetheless, the driver is still in the early stages of
	debugging.  Read the wiki page for more details, guidelines on
	installation and initial bug analysis.</p>

      <p>Main efforts right now are directed on getting the required VM
	changes into the base system, ideally before 9.0 is released.</p>
    </body>
  </project>

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

    <contact>
      <person>
	<name>
	  <given>Remko</given>
	  <common>Lodder</common>
	</name>
	<email>remko@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Ren&eacute;</given>
	  <common>Ladan</common>
	</name>
	<email>rene@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://wiki.FreeBSD.org/DutchDocumentationProject">Wiki
	  Page</url>

      <url href="http://p4web.freebsd.org/@md=d&amp;cd=//depot/projects/&amp;c=Hid@//depot/projects/docproj_nl/?ac=83">
	  Perforce repository</url>
    </links>

    <body>
      <p>During the last period most work went into keeping the Handbook
	up to date; it is currently up-to-date except for a section on
	network servers.  Other areas being worked on are the FAQ and the
	web site.  The latter two are still a work-in-progress.</p>
    </body>

    <help>
      <task>Volunteers! The best part is that you do not need to be an
	expert on &os; nor the Dutch language to join, just some
	enthusiasm and spare time.</task>
    </help>
  </project>

  <project cat='arch'>
    <title>&os;/powerpc64 on IBM pSeries machines</title>

    <contact>
      <person>
	<name>
	  <given>Nathan</given>
	  <common>Whitehorn</common>
	</name>
	<email>nwhitehorn@FreeBSD.org</email>
      </person>

      <person>
	<name>
	  <given>Andreas</given>
	  <common>Tobler</common>
	</name>
	<email>andreast@FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="svn://svn.FreeBSD.org/base/projects/pseries/">
	  Development Branch</url>
    </links>

    <body>
      <p>The goal of this project is to make &os; running on PAPR
	compliant machines like the IBM pSeries family.</p>

      <p>Currently we can boot a POWER7 emulation under a recent qemu
	snapshot.</p>

      <p>The boot process stops when trying to find a PIC.</p>

      <p>The same applies for an IntelliStation-285. (POWER5+).</p>
    </body>

    <help>
      <task>Implement interrupt controller.</task>
      <task>PCI bus scanning.</task>
      <task>Drivers, drivers, drivers.</task>
      <task>Improve memory management.</task>
    </help>
  </project>

  <project cat='net'>
    <title>New ipfw features</title>

    <contact>
      <person>
	<name>
	  <given>Vadim</given>
	  <common>Goncharov</common>
	</name>
	<email>vadim_nuclight@mail.ru</email>
      </person>
    </contact>

    <links>
      <url href="http://svnweb.FreeBSD.org/base?view=revision&amp;revision=223666" />
    </links>

    <body>
      <p>The <a
	  href="http://www.FreeBSD.org/cgi/man.cgi?query=ipfw&amp;sektion=4&amp;manpath=FreeBSD+9.0-RELEASE">
	ipfw(4)</a> packet filter now supports <tt>call</tt>
	and <tt>return</tt> rule actions.  When a packet matches a rule
	with the <tt>call</tt> action, the rule number is saved in the
	internal stack and rules processing continues from the first
	rule with specified number (similar to <tt>skipto</tt> action,
	but backward jumps are allowed).  If later a rule with
	<tt>return</tt> action is encountered, the processing returns to
	the first rule with number greater than the number saved in the
	internal stack.  This makes it possible to organize "subroutines"
	with rules, e.g. to call one subroutine several times from
	different places in the ruleset.  For more details, see <a
	  href="http://www.FreeBSD.org/cgi/man.cgi?query=ipfw&amp;sektion=8&amp;manpath=FreeBSD+9.0-RELEASE&amp;format=html">
	ipfw(8)</a>.</p>
    </body>
  </project>

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

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

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

      <url href="http://dot.kde.org/2011/06/29/platform-frameworks-kde-hackers-meet-switzerland">
	  Dot article on the KDE sprints in Switzerland</url>

      <url href="http://blogs.FreeBSDish.org/avilla/2011/06/14/call-for-tests-kde-pim-4-6-0">
	  Call for test of KDE PIM 4.6.0</url>

      <url href="http://FreeBSD.kde.org/area51.php">area51
	  Switzerland</url>
    </links>

    <body>
      <p>Alberto Villa and Raphael Kubo da Costa went to Randa,
	Switzerland, to attend, respectively, the KDE Multimedia/Kdenlive
	sprint and the Platform 11 sprint.  The sprints afforded them the
	opportunity to form closer bonds with the upstream KDE community,
	to learn about the future of Qt and KDE and make sure &os;'s
	needs are taken into account.  For more information see the article
	"From Platform to Frameworks -- KDE hackers meet in Switzerland" at
	dot.kde.org.</p>

      <p>The KDE on &os; team have continued to improve the experience
	of KDE and Qt under &os;.  The latest round of improvements
	include:</p>

      <ul>
	<li>Qt supports Clang as a compiler</li>
      </ul>

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

      <ul>
	<li>Qt: 4.7.3</li>
	<li>KDE: 4.6.3; 4.6.4; 4.6.5</li>
	<li>Amarok: 2.4.1</li>
	<li>Digikam (and KIPI-plugins): 1.9.0</li>
      </ul>

      <p>Further testing is requested for KDE PIM 4.6.0 and Calligra
	2.3.72 before the ports are committed.  To test the ports please
	visit Alberto Villa's call for test and area51.</p>

      <p>The team is always looking for more testers and porters so
	please visit us at kde-freebsd@kde.org and our homepage.</p>
    </body>

    <help>
      <task>Testing KDE PIM 4.6.0.</task>
    </help>
  </project>

  <project cat='team'>
    <title>The &os; Foundation</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>We were a proud sponsor of BSDCan.  We also sponsored 6
	developers to attend the conference.  And, we brought in over
	$1,000 in donations! The Foundation was also represented at
	FlourishConf in Chicago, IL and SouthEast LinuxFest in
	Spartanburg, SC.</p>

      <p>We acquired a non-exclusive copyright license to the <a
	  href="http://www.FreeBSDFoundation.org/press/Pathscale-PRrelease.shtml">
	libcxxrt C++ runtime</a> software from PathScale.</p>

      <p>Sponsored a project to create an <a
	  href="http://www.FreeBSDFoundation.org/press/IPv6%20Day-PRrelease.shtml">
	IPv6-only version</a> of &os; and PC-BSD.</p>

      <p>We're pleased announce the addition of Ed Maste to our Board
	of Directors.  Ed has been involved with &os; since 2003.  And,
	has been a committer since 2005.  Ed leads the OS team at Sandvine
	and is responsible for a number of developers who bring
	enhancements from &os; into Sandvine's OS and contribute their
	own changes back to &os;.</p>

      <p>We continued our work on infrastructure projects to beef up
	hardware for package-building, network-testing, etc.  This
	includes purchasing equipment as well as managing equipment
	donations.  In fact we just placed an order for a 80-core server
	for SMP performance work.</p>

      <p>Stop by and visit with us at Ohio LinuxFest, Columbus, OH, on
	September 10.</p>

      <p>The work above, as well as many other tasks we do for the
	project, couldn't be done without donations.  Please help us by
	making a donation or asking your company to make a donation.  We
	would be happy to send marketing literature to you or your
	company.  Find out how to make a donation at <a
	  href="http://www.FreeBSDFoundation.org/donate/">
	http://www.FreeBSDFoundation.org/donate/</a>.</p>

      <p>Find out more up-to-date Foundation news by reading our
	<a href="http://FreeBSDFoundation.blogspot.com/">blog</a>
	and <a
	  href="https://www.facebook.com/FreeBSDFoundation">Facebook
	page</a>.</p>
    </body>
  </project>

  <project cat='kern'>
    <title>OpenAFS port</title>

    <contact>
      <person>
	<name>
	  <given>Benjamin</given>
	  <common>Kaduk</common>
	</name>
	<email>kaduk@mit.edu</email>
      </person>

      <person>
	<name>
	  <given>Derrick</given>
	  <common>Brashear</common>
	</name>
	<email>shadow@gmail.com</email>
      </person>
    </contact>

    <links>
      <url href="http://openafs.org">OpenAFS home page</url>
      <url href="http://wiki.FreeBSD.org/afs">&os; Wiki on AFS</url>
    </links>

    <body>
      <p>AFS is a distributed network filesystem that originated from the
	Andrew Project at Carnegie-Mellon University.  Since our last
	report, upstream OpenAFS has updated to a 1.6.0pre6 release
	candidate, which is available in the &os; Ports Collection.  We
	still expect the upcoming 1.6.0 release to be usable for regular
	client workloads (though not heavy load).  We have also made
	progress on integration with the bsd.kmod.mk kernel-module-building
	infrastructure, with a working prototype implementation.  Further
	cleanup and testing is needed before it is ready to be
	committed.</p>

      <p>There are several known outstanding issues that are being worked
	on, but detailed bug reports are welcome at
	port-freebsd@openafs.org.</p>
    </body>

    <help>
      <task>Update VFS locking to allow the use of disk-based client
	caches as well as memory-based caches.</task>

      <task>Track down races and deadlocks that may appear under
	load.</task>

      <task>Integrate with the bsd.kmod.mk kernel-module build
	infrastructure.</task>

      <task>Eliminate a moderate memory leak from the kernel
	module.</task>

      <task>PAG (Process Authentication Group) support is not
	functional.</task>
    </help>
  </project>

  <project cat='proj'>
    <title>Fix clang warnings</title>

    <contact>
      <person>
	<name>
	  <given>Ben</given>
	  <common>Laurie</common>
	</name>
	<email>benl@FreeBSD.org</email>
      </person>
    </contact>

    <body>
      <p>In order to assist with the process of moving away from gcc,
	while I learn the ropes of being a contributor, I am
	systematically fixing clang warnings, so we can turn on -Werror
	again.</p>

      <p>Down from &gt; 42,000 warnings at the end of May to &lt; 9,000
	warnings now.</p>
    </body>

    <help>
      <task>Always happy if someone else finds and fixes a
	warning!</task>
    </help>
  </project>

  <project cat='gsoc'>
    <title>nvi-iconv</title>

    <contact>
      <person>
	<name>
	  <given>Zhihao</given>
	  <common>Yuan</common>
	</name>
	<email>lichray@gmail.com</email>
      </person>
    </contact>

    <links>
      <url href="http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1">
	  Project proposal</url>

      <url href="https://github.com/lichray/nvi2">GitHub page</url>
    </links>

    <body>
      <p>This project creates a multibyte aware nvi fork.  While most of
	the userland tools in the &os; base system support multibyte
	encodings, there is no pure-licensed nvi fork comes with
	sufficient multibyte encoding (both Unicode and non-Unicode)
	support prior to this.</p>

      <p>Currently, functionally, the new nvi is ready for testing.  The
	description is at https://github.com/lichray/nvi2/wiki (the patch
	is deprecated).  I will commit a new one latter.</p>

      <p>The features dropped from nvi-1.79 are:</p>

      <ul>
	<li>Perl and Tcl interpreter supports;</li>

	<li>The whole Perl/Tcl/Tk scripting framework;</li>

	<li>A third-party gtags support.</li>
      </ul>

      <p>and the features adopted from nvi-1.81.6 includes:</p>

      <ul>
	<li>Multibyte encoding supports (wchar_t + libiconv +
	  libncursesw);</li>

	<li>fileencoding and inputencoding options;</li>

	<li>Undocumented :vsplit command, which vertically splits the
	  screen.</li>
      </ul>

      <p>Many known bugs, incomplete code from nvi-devel are fixed.
	However, I find a serious memory leaking (via valgrind) in the
	nvi-devel iconv framework.  This requires a careful review.</p>
    </body>

    <help>
      <task>Reviews the iconv part and fixes the memory leak.</task>

      <task>Ex scripts for testing.  But it seems that I have no
	experience on that...</task>

      <task>File encoding detection.  My plan it to detect UTF-16 BOM
	first, then UTF-8.  If all fails, uses locale.  UTF-8 BOM is not
	supported by iconv, and we need to discuss whether we should
	support it in the editor.</task>
    </help>
  </project>

  <project cat='proj'>
    <title>Clang replacing GCC in the base system</title>

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

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

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

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

    <links>
      <url href="http://wiki.FreeBSD.org/BuildingFreeBSDWithClang" />
      <url href="http://wiki.FreeBSD.org/PortsAndClang" />
    </links>

    <body>
      <p>We imported newer snapshot of clang/llvm.  This features quite
	a lot of goodies.  Most notably there's a new register
	allocator that brings much better runtime performance.  If you
	did a performance evaluation of clang/llvm in the past now
	it's the time to rerun it with the new register allocator!</p>

      <p>There was some progress on Mips and PowerPC in addition to
	the usual influx of improvements on ARM, i386 and amd64.  We've
	managed to get clang compiled arm kernel booting.  ARM world is
	blocked by &os; using old ARM ABI.</p>

      <p>We got a buildbot that periodically builds clang/llvm on
	&os; and &os; (amd64 and i386) using clang/llvm, including
	booting the resulting image.</p>

      <p>We ran a few ports exp runs and got many ports bugs fixed so
	right now we're able to build more than 15000 ports with
	clang.  We expect this number to grow rapidly as the problems
	are mostly trivial.</p>
    </body>

    <help>
      <task>Fix your ports.</task>

      <task>Performance evaluate the new clang/llvm.</task>

      <task>Fix clang warnings in src.</task>

      <task>Implement proper support for cross compiling.</task>
    </help>
  </project>

  <project cat='arch'>
    <title>&os; on the Sony Playstation 3</title>

    <contact>
      <person>
	<name>
	  <given>Nathan</given>
	  <common>Whitehorn</common>
	</name>
	<email>nwhitehorn@freebsd.org</email>
      </person>
    </contact>

    <links>
      <url href="http://people.freebsd.org/~nwhitehorn/ps3/" />
    </links>

    <body>
      <p>The &os; Playstation 3 port is now fairly mature and will be
	included in the 9.0 release, starting with BETA2.  Most internal
	devices, including the USB ports, bluetooth, ethernet, and SATA
	devices are now supported, and the operating system can be
	installed to and boot from the internal hard disk.</p>

      <p>There are several remaining pieces to the port (Wireless,
	Sound, X11, and the SPUs), which may be interesting
	projects for those interested in non-PC architectures.</p>
    </body>

    <help>
      <task>Built-in wireless.  The 802.11 wireless interface on the
	Playstation 3 is multiplexed through the wired ethernet MAC and
	is currently unsupported.</task>

      <task>The sound hardware is not currently supported.</task>

      <task>The framebuffer driver does not currently support X11.
	This would involve writing a simple X11 framebuffer driver to
	connect to syscons.</task>

      <task>The synergistic processing units (SPUs) on the Cell
	processor are not supported yet.  They present an interesting
	model of heterogeneous computing, more suited for full treatment
	by a UNIX-type kernel than GPGPU computing: each SPU has a
	concept of user and supervisor mode, as well as interrupts, and
	can share MMU context with the main CPU cores. As such, they in
	principle can support a full UNIX process model.</task>
    </help>
  </project>

  <project cat='ports'>
    <title>libvirt networking port</title>

    <contact>
      <person>
	<name>
	  <given>Jason</given>
	  <common>Helfman</common>
	</name>
	<email>jhelfman@experts-exchange.com</email>
      </person>

      <person>
	<name>
	  <given>Daniel P.</given>
	  <common>Berrange</common>
	</name>
	<email>berrange@redhat.com</email>
      </person>
    </contact>

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

    <body>
      <p>Libvirt, a Toolkit to interact with virtualization
	capabilities, has been ported to &os;, however the networking
	capabilities have been disabled as they are incompatible with
	&os;.  Libvirt currently supports connecting to many types of
	hypervisors, however it can be a far more useful tool if the
	networking capabilities were ported to &os;.</p>

      <p>In contacting Daniel P. Berrange, he was kind enough to
	advise on what is required to port networking of libvirt to
	&os;.  His response is paraphrased below:</p>

      <p>There are two aspects to networking in libvirt:</p>

      <ul>
	<li>The virtual network driver (in
	  src/network/bridge_driver.c) uses the Linux kernel's
	  native 'bridge' functionality to provide an isolated, or
	  routed, or NATed network connection to guests.  There is a
	  bridge device on the host created, and guest TAP devices are
	  added to it.  There is no physical ethernet device added to the
	  bridge, and iptables is used to control whether the host OS
	  routes traffic to/from the bridge &amp; physical LAN.<br/>
	  Porting bridge and bridge control functionality to &os;
	  would need to be done, and how to nat/routed/isolated guest
	  configs and write a compatible version of bridge_driver.c
	  for &os;.</li>

	<li>The host interface driver (in src/inteface/netcf_driver.c)
	  uses the netcf library to manage configuration of host network
	  interfaces to do things like bonding, vlans, bridging and controlling
	  the interfaces availability.  The core job is to port netcf to work
	  with &os;.  A netcf backend that understands &os;'s networking
	  configuration files and calls appropriate tools to bring
	  interfaces online/offline would need to be created.</li>
      </ul>

      <p>Both these jobs are pretty much independent, so can easily be
	done in parallel.</p>
    </body>

    <help>
      <task>Port bridge network driver for libvirt.</task>

      <task>Port netcf driver for libvirt.</task>
    </help>
  </project>
</report>
