Gabor Pali
2013-May-12 17:56 UTC
[FreeBSD-Announce] FreeBSD Quarterly Status Report, January-March 2013
FreeBSD Quarterly Status Report, January-March 2013 Introduction This report covers FreeBSD-related projects between January and March 2013. This is the first of four reports planned for 2013. Highlights from this status report include the busy preparations of 8.4-RELEASE, restoration of binary package building, steady progress of several porting efforts, like work on the FreeBSD ports of xorg, GNOME, KDE, and Xfce, bringing FreeBSD to Cubieboard and Hackberry boards, development of ARM and AMD GPU support, improving performance of UFS/FFS and callouts, and introducing a multipath TCP implementation for the network stack. Thanks to all the reporters for the excellent work! This report contains 31 entries and we hope you enjoy reading it. The deadline for submissions covering the period between April and June 2013 is July 7th, 2013. __________________________________________________________________ Projects * FreeNAS * Kernel Information in Process Core Dumps * Native iSCSI Stack FreeBSD Team Reports * FreeBSD Bugmeister Team * FreeBSD Core Team * FreeBSD Port Managers * FreeBSD Postmaster Team * FreeBSD Release Engineering Team Kernel * AMD GPU Kernel Mode-Setting (KMS) Support * Atomic "close-on-exec" * callout(9) Improvements * Multipath TCP (MPTCP) for FreeBSD * racct: Block IO Accounting * Read-only Port of NetBSD's UDF File System * TCP-AO Authentication Option * UFS/FFS Performance Work Documentation * Improving the Documentation Project Infrastructre * The entities Documentation Branch * The FreeBSD Japanese Documentation Project Architectures * FreeBSD on Cubieboard * FreeBSD/arm Superpages for ARMv7 * FreeBSD/ARM Toolchain Improvements Ports * FreeBSD Haskell Ports * GNOME/FreeBSD * KDE/FreeBSD * PyPy * Wine32 on FreeBSD/amd64 * Xfce/FreeBSD * xorg on FreeBSD Miscellaneous * BXR.SU -- Super User's BSD Cross Reference * mdoc.su -- Short Manual Page URLs __________________________________________________________________ AMD GPU Kernel Mode-Setting (KMS) Support URL: https://wiki.freebsd.org/AMD_GPU Contact: Jean-S?bastien P?dron <dumbbell at FreeBSD.org> Contact: J.R. Oldroyd <jr at opal.com> Contact: Konstantin Belousov <kib at FreeBSD.org> The project progressed well since February: * Konstantin committed is TTM port to 10-CURRENT. * With the help of John Baldwin (jhb) and Andriy Gapon (avg), the Video BIOS situation greatly improved: the radeonkms driver reads the BIOS shadow copy if the video card is the primary one, or query the PCI expansion ROM otherwise. In the end, this code will be probably committed to the PCI driver so that other video drivers benefit from it. * Andriy also reported several problems with the I2C code. Now that they are fixed, the monitors plugged into DVI and HDMI connectors are detected and their EDID is read correctly. VGA connector is not tested so far. * There is a locking problem in either TTM or the Radeon driver which prevents OpenGL from working properly. Jean-S?bastien is currently tracking this down. * J.R. Oldroyd started to work on a 9-STABLE backport of the driver which is now working quite well. He had to backport some features from the VM which may need further refinement by the VM folks. Yakaz lended Jean-S?bastien a computer which allows him to test a RV630-based discrete card and, in the future, other PCIe cards. Several users already kindly tested the driver. Big thanks to all those contributors! In its current state, the driver allows to have a simple X session (no OpenGL), run common applications, watch movies, change the resolution and enable additional monitors with xrandr(1). The most blocking issue now is the OpenGL deadlock which prevents to run modern compositors/desktop environment, games and WebGL demos. We are not ready for a "Call For Testers" yet. Open tasks: 1. Test multiple cards configurations for Video BIOS issues, especially Intel integrated card + Radeon discrete card, and AMD integrated card (IGP) + Radeon discrete card. No need to check configurations with one shared connector though, it is not supported right now. __________________________________________________________________ Atomic "close-on-exec" URL: https://wiki.freebsd.org/AtomicCloseOnExec Contact: Jilles Tjoelker <jilles at FreeBSD.org> If threads or signal handlers call fork() and exec(), file descriptors may be passed undesirably to child processes, which may lead to hangs (if a pipe is not closed), exceeding the file descriptor limit and security problems (if the child process has lower privilege). One solution is various new APIs that set the "close-on-exec" flag atomically with allocating a file descriptor. Some existing software will use the new features if present or will even refuse to compile without them. Various parts have been present for some time. In first quarter of 2013, extensions to recvmsg(), socket(), socketpair() and posix_openpt() have been added. __________________________________________________________________ BXR.SU -- Super User's BSD Cross Reference URL: http://bxr.su/ URL: http://lists.freebsd.org/pipermail/freebsd-hackers/2013-April/042334.html Contact: Constantine A. Murenin <cnst++ at FreeBSD.org> Super User's BSD Cross Reference (BXR.SU) is a new source-code search engine that covers the complete kernel and non-GNU userland source trees of FreeBSD, NetBSD, OpenBSD, and DragonFly BSD. BXR.SU is optimised to be very fast, has daily updates of all the trees, and also acts as a deterministic URL shortener. BXR.SU is based on an OpenGrok fork, but it is more than just OpenGrok. We have fixed a number of annoyances, eliminated features that just never worked right from the outright, and provided integration with tools like CVSweb (including great mirrors like allbsd.org), FreeBSD's ViewVC (SVN), as well as GitHub and Gitweb from git.freebsd.your.org, plus a tad of other improvements, including a complete rewrite of an mdoc parser. Last, but definitely not least, is an extensive set of nginx rewrite rules that makes it a breeze to use BXR.SU as a deterministic URL compactor for referencing BSD source code. For example, the http://bxr.su/f/kern/sched_ule.c URL will automatically redirect to http://bxr.su/FreeBSD/sys/kern/sched_ule.c through nginx. Note that according to the release schedule of BXR.SU, there is no IPv4 glue until 2013-04-24; otherwise, the service is available via both IPv4 and IPv6. See the 2013-04-01 announcement on the freebsd-hackers mailing list for more details. Open tasks: 1. Find up-to-date git repositories (served with Gitweb) of NetBSD and OpenBSD. 2. Find a Gitweb mirror of FreeBSD that is faster than GitHub and Gitorious. __________________________________________________________________ callout(9) Improvements URL: http://people.freebsd.org/~davide/asia/callout_paper.pdf URL: http://people.freebsd.org/~davide/asia/calloutng.pdf URL: http://svnweb.freebsd.org/base?view=revision&revision=247777 Contact: Davide Italiano <davide at FreeBSD.org> Contact: Alexander Motin <mav at FreeBSD.org> In FreeBSD, timers are provided by the callout facility, which allows to register a function with an argument to be called at specified future time. The subsystem suffered of some problems, such as the impossibility of handling high-resolution events or its inherent periodic structure, which may lead to spurious wakeups and higher power consumption. Some consumers, such as high-speed networking, VoIP and other real-time applications need a better precision than the one currently allowed. Also, especially with the ubiquity of laptops in the last years, the energy wasted by interrupts waking CPUs from sleep may be a sensitive factor. Recent changes in the subsystem addressed those long-standing issues as well as introduced a new programming interface to take advantage of the new features. Open tasks: 1. Evaluating if it is worth to migrate any of the other callout(9) consumers to the new interface. 2. Move callout consumers still using the legacy timeout()/untimeout() interface to callout_*() in order to get rid of redundant code and clean up KPI. __________________________________________________________________ FreeBSD Bugmeister Team Contact: Eitan Adler <eadler at FreeBSD.org> Contact: Gavin Atkinson <gavin at FreeBSD.org> Contact: Oleksandr Tymoshenko <gonzo at FreeBSD.org> The FreeBSD Bugmeister Team are continuing to evaluate options for alternate bug trackers and have narrowed their choices to two possibilities: Bugzilla and roundup. The number of non-ports PRs have remained relatively static over the last three months, with as many coming in as being closed. The number of ports PRs have increased recently, largely due to the ports freeze for the upcoming 8.4-RELEASE. The Bugmeister team continue work on trying to make the contents of the GNATS PR database cleaner, more accessible and easier for committers to find and resolve PRs, by tagging PRs to indicate the areas involved, and by ensuring that there is sufficient info within each PR to resolve each issue. As always, anybody interested in helping out with the PR queue is welcome to join us in #freebsd-bugbusters on EFnet. We are always looking for additional help, whether your interests lie in triaging incoming PRs, generating patches to resolve existing problems, or simply helping with the database housekeeping (identifying duplicate PRs, ones that have already been resolved, etc). This is a great way of getting more involved with FreeBSD! Open tasks: 1. Finalize the decision of which new bug tracker to use. 2. Get more users involved with triaging PRs as they come in. 3. Assist committers with closing PRs. __________________________________________________________________ FreeBSD Core Team Contact: Core Team <core at FreeBSD.org> At the end of 2012, the Core Team approved using Google Analytics on the Project web site to enable the Documentation Engineering Team to collect statistics on its usage for better profiling. In the first quarter of 2013, the Core Team worked with the Documentation Engineering Team to finalize the associated policies. Due to some debates around the political correctness of quotes added for the fortune(6) utility, the corresponding data file has been removed from the base system in -CURRENT. In light of the security incident, the liaison role between the Core Team and the Security Team has been restored, with Gavin Atkinson assuming this role. The Core Team work hard on resolving the current situation of the binary package building cluster and the associated security problems in tight cooperation with the Ports Management Team, Cluster Administators, and the FreeBSD Foundation Board. The compromise page is kept updated on the results. The FreeBSD Project submitted an application for Google Summer of Code this year again. There was access granted for 2 new committers and 1 commit bit was taken for safekeeping in this quarter. __________________________________________________________________ FreeBSD Haskell Ports URL: http://wiki.freebsd.org/Haskell URL: https://github.com/freebsd-haskell/freebsd-haskell/ Contact: G?bor P?li <pgj at FreeBSD.org> Contact: Ashish Shukla <ashish at FreeBSD.org> We are proud to announce FreeBSD Haskell Team has updated existing ports to their latest stable versions. We also added number of new ports, which brings the count of Haskell ports in FreeBSD ports tree to more than 400, featuring many popular software, e.g. xmonad, git-annex, pandoc or various web framework implementations. All of these updates will be available as part of the upcoming 8.4-RELEASE. We also came to know that Haskell ports are also being used successfully on DragonFlyBSD's dports tree. In our development repository, there was some optional support added for LLVM-based code generation using the GHC LLVM backend. This works mostly on FreeBSD too, though some of the ports would need fixing so it is still considered experimental. Open tasks: 1. Try to build GHC with clang (as system compiler). 2. Commit pending Haskell ports to the FreeBSD ports tree. 3. Add more ports to the Ports Collection. __________________________________________________________________ FreeBSD on Cubieboard Contact: Ganbold Tsagaankhuu <ganbold at FreeBSD.org> Contact: Oleksandr Tymoshenko <gonzo at FreeBSD.org> Initial support of Allwinner A10 SoC is committed to -CURRENT. FreeBSD is now running on boards such as Cubieboard, Hackberry and it supports following peripherals: * USB EHCI * GPIO Open tasks: 1. Get EMAC Ethernet driver working. Need more help from network driver experts. 2. Implement more drivers. __________________________________________________________________ FreeBSD Port Managers URL: http://www.FreeBSD.org/ports/ URL: http://www.freebsd.org/doc/en/articles/contributing-ports/ URL: http://portsmon.freebsd.org/ URL: http://www.freebsd.org/portmgr/ URL: http://blogs.freebsdish.org/portmgr/ URL: http://www.twitter.com/freebsd_portmgr/ URL: http://www.facebook.com/portmgr Contact: Thomas Abthorpe <portmgr-secretary at FreeBSD.org> Contact: Port Management Team <portmgr at FreeBSD.org> The ports tree contains approximately 24,300 ports, while the PR count still is close to 1600. In the first quarter we added 4 new committers, took in 1 commit bit for safe keeping, and re-instated 1 commit bit. In February, Mark Linimon (linimon) stepped down from his duties in the team. Mark had been the longest serving member of the team. Mark had spent many long hours refactoring and documenting the portbuild software to ensure that pointyhat services could be restored. After a security review, redports.org was turned back on, restoring Tinderbox services to contributors, along with post commit QATs. In addition, pointyhat infrastructure had also undergone a review and work begain on restoring the package build system. Erwin Lansing (erwin) and Martin Wilke (miwi) took on the principle roles of getting the portbuild software installed and running on pointyhat. As a result of all their hard work, portmgr@ was finally able to resume doing -exp runs, preparing packages for the upcoming 8.4 release, as well as getting a set of 9.1 packages retroactively prepared. After many long years of being the defacto standard for the Project, CVS support for the ports tree officially ended on February 28. The ports tree was tagged with RELEASE_7_EOL, to coincide with the end of life for FreeBSD 7.X. Beat Gaetzi (beat) stepped down from his duties on portmgr@ in March. Among his notable contributions, was the task of migrating the Ports Tree from the old CVS repo to Subversion. Bryan Drewery (bdrewery) joined the Ports Management team in March, bringing with him his wealth of knowledge and skill from maintaining portupgrade, portmaster, assisting with pkgng, as well as co-developing poudriere. Open tasks: 1. Most ports PRs are assigned, we now need to focus on testing, committing and closing. __________________________________________________________________ FreeBSD Postmaster Team Contact: David Wolfskill <postmaster at FreeBSD.org> In the first quarter of 2013, the FreeBSD Postmaster Team has implemented the following items that may be interest of the general public: * Changes in configuration of Mailman-managed lists: allow to accept the application/pkcs7-signature MIME type (in addition to the application/x-pkcs7-signature MIME type), thus permitting S/MIME signatures on list mail. * New lists: freebsd-ops-announce -- announcements of infrastructure issues, and freebsd-pkg -- discussion of binary package management and package tools. __________________________________________________________________ FreeBSD Release Engineering Team URL: http://www.freebsd.org/releases/8.4R/schedule.html Contact: FreeBSD Release Engineering Team <re at FreeBSD.org> FreeBSD 8.4-RC1 just got out the door and we are planning RC2. A couple of critical fixes have come in that will be included in RC2. The schedule has slipped about 10 days so far. We are expecting the final release by the end of April. Packages for 8.4 have been provided by a fully operational package building cluster. __________________________________________________________________ FreeBSD/arm Superpages for ARMv7 URL: http://static.usenix.org/events/osdi02/tech/full_papers/navarro/navarro.pdf URL: https://wiki.freebsd.org/ARMSuperpages URL: https://github.com/semihalf-bodek-zbigniew/freebsd-arm-superpages.git Contact: Zbigniew Bodek <zbb at semihalf.com> Contact: Grzegorz Bernacki <gjb at semihalf.com> Contact: Rafa? Jaworowski <raj at semihalf.com> ARM architecture is more and more prevailing, not only in the mobile and embedded space. Among the more interesting industry trends emerging in the recent months has been the "ARM server" concept. Some top-tier companies started developing systems like this already (Dell, HP). Key to FreeBSD success in these new areas are sophisticated features, among them are superpages. The objective of this project is to provide FreeBSD/arm with the superpages support, which will allow for efficient use of TLB translations (enlarge TLB coverage), leading to improved performance in many applications and scalability. Indicated functionality is intended to work on ARMv7-based processors, however compatibility with ARMv6 will be preserved. Current support status: * Port of the pv_entry allocator. * Switch to "AP[2:1]" access permissions model. * PTE-based, page-referenced/modified emulation. * Fixes regarding page replacement strategy. * Code optimizations and bug fixes. Next steps: * Dirty pages management. * Gradual integration to FreeBSD -CURRENT. * Further pmap optimizations. * Fragmentation control management. * Testing and benchmarking. Open tasks: 1. Support for multiple page sizes. 2. Implementation of page promotion, demotion and eviction mechanisms. __________________________________________________________________ FreeBSD/ARM Toolchain Improvements Contact: Andrew Turner <andrew at FreeBSD.org> Clang has been made the default compiler on ARM. A number of issues with LLVM and clang have been found, reported, and fixed upstream. An issue where some ARM EABI applications compiled with clang crash has been reported upstream with a patch and will be brought into the FreeBSD tree when it is accepted. The only other issue blocking moving to the ARM EABI is C++ exceptions fail to work correctly with shared objects. This will need us to either import libunwind or implement the functions libgcc_s requires to find the correct unwind table. Open tasks: 1. Fix exception handling for EABI. __________________________________________________________________ FreeNAS URL: http://www.FreeNAS.org/ Contact: Alfred Perlstein <alfred at FreeBSD.org> Contact: Josh Paetzel <jpaetzel at FreeBSD.org> FreeNAS 8.3.1-RELEASE-p2 will hit Sourceforge the second week of April, and should end up as the last FreeNAS release based on FreeBSD 8.X It's currently the only Free Open Source NAS product available with any form of ZFS encryption (provided by GELI). Open tasks: 1. The team is hard at work on getting a FreeBSD 9.X-based release of FreeNAS ready. Currently there are several nightly snapshots available. 2. Add HAST to the webinterface. 3. Migrate to NFSv4. 4. Integrate foundation sponsored kernel iSCSI target. __________________________________________________________________ GNOME/FreeBSD URL: http://www.freebsd.org/gnome URL: http://www.freebsd.org/gnome/docs/develfaq.html URL: http://www.marcuscom.com:8080/viewvc/viewvc.cgi/marcuscom URL: https://github.com/jlmess77/mate-ports Contact: FreeBSD GNOME team <gnome at FreeBSD.org> The GNOME/FreeBSD Team has recently merged Glib 2.34, Gtk+ 2.24.17 and Gtk+ 3.6.4 into ports, the C++ bindings also have got updates. In additional "low-level" GNOME ports received updates, like libsoup, gobject-introspection, atk and vala for example. The telepathy stack and empathy where also updated. The USE_GNOME macro has received support for :run and :build targets thanks to Jeremy Messenger (mezz). Currently only libxml2 and libxslt support these targets. USE_GNOME=pkgconfig is being deprecated in favor of USE_PKGCONFIG=build. The former also adds a run dependency on pkg-config, which is not required. A first pass was done to get rid of this in the Glib update to 2.34. In cooperation with the X11 Team, the usage of USE_GNOME=pkgconfig in X components will be removed. After the fallout from this is handled and stranglers are converted, the USE_GNOME option will be removed. In addition USE_GNOME=gnomehack is deprecated and should not be used. Please replace it with USES=pathfix. The GNOME development repository has switched from CVS to SVN. CVS will not get any more updates. Uses can get a new version of the marcusmerge script that supports SVN from its home page, and should remove the old CVS checkout "ports" dir. * SVN anonymous root: svn://creme-brulee.marcuscom.com/ or svn://sushi.marcuscom.com/ (IPv6) * ViewVC: http://www.marcuscom.com:8080/viewvc/viewvc.cgi/marcuscom On-going efforts: * glib 2.36, pango 1.34.0, gtk 3.8.0 and gobject-introspection 1.36.0 where updated in the GNOME development repository. * Gustau Perez i Querol stepped up and started work on updating the old GNOME 3.4 ports to 3.6. At the moment of writing these are not available in the GNOME development repository just yet. For his efforts, he was awarded a FreeBSD GNOME team membership. * Jeremy Messenger (mezz) has completed Mate 1.6 which will be arriving in ports near you when deemed stable enough. If you want to help with keeping the documentation updated or helping out in other ways, even if it only parts for the Glib/Gtk/GNOME stack you are interested in, please contact us! Open tasks: 1. Update the FreeBSD.org/gnome website, in particular the developer information about USE_GNOME, maybe put that section in the Porter's Handbook instead. 2. Merge more updated ports from MC to ports. 3. Testing latest Glib/Gtk releases with existing ports, and import it into ports when it is ready. 4. After porting GNOME 3.6 run tests and fix bugs. __________________________________________________________________ Improving the Documentation Project Infrastructre URL: http://svnweb.freebsd.org/doc/projects/xml-tools/ Contact: G?bor K?vesd?n <gabor at FreeBSD.org> There is an on-going work to improve the documentation infrastructure and modernize our documentation toolchain. The work can be found in the xml-tools branch and is very near to completion. The improvements include the following: * Upgrade to DocBook 4.5. * Use XSLT instead of DSSSL to render XHTML-based output. * Generate PDF from PS and simplify image processing. * Fix make lint and validate the whole documentation set. * Fix rendering of TOC elements. * Fix misused link elements that resulted in a corrupt rendering. * Use more human-friendly publication data and release info rendering. * Add support for XInclude in DocBook documents. * Add support for profiling with attributes. * Add support for Schematron constraints. * Add experimental epub support. * Add experimental support for XSL-FO-based printed output. * Clean up obsolete SGML constructs. * Clean up catalogs. * Drop HTML Tidy since it is not needed any more. The changes eliminate some dependencies and switch the doc repository to a real XML toolchain with proper validation and more advanced rendering tools. The only exceptions are Jade and the DSSSL stylesheets, which are still needed for printed output. Open tasks: 1. Fix rendering problems with images in printed formats. 2. Update the Documentation Primer to reflect changes. __________________________________________________________________ KDE/FreeBSD URL: http://FreeBSD.kde.org URL: http://FreeBSD.kde.org/area51.php Contact: KDE FreeBSD <kde at FreeBSD.org> The KDE/FreeBSD Team is very proud to have Schaich Alonso (aschai) joining the team. Welcome! The KDE/FreeBSD Team have continued to improve the experience of KDE software and Qt under FreeBSD. The latest round of improvements include: * Fix problems establishing UDP connections. The Team have also made many releases and upstreamed many fixes and patches. The latest round of releases include: * KDE SC: 4.9.5, 4.10.1 (ports) * Qt: 5.0.0 (area51) and 4.8.4 (ports) * PyQt: 4.9.6 (ports); QScintilla 2.7 (ports); SIP: 4.14.2 (area51) and 4.14.3 (ports) * KDevelop: 4.4.1 (ports); KDevPlatform: 1.4.1 (ports) * Calligra: 2.5.5, 2.6.2 (ports) * Amarok: 2.7.0 * CMake: 2.8.10.2 * Digikam (and KIPI-plugins): 3.1.0 (area51) * QtCreator: 4.6.1 (ports) * KDE Telepathy 0.6.0 (area51) * many smaller ports As a result -- according to PortScout -- we have 431 ports, of which 93.5% (from 91%) are up-to-date. The Team are always looking for more testers and porters so please contact us and visit our home page. Open tasks: 1. Updating out-of-date ports, see PortScout for a list. __________________________________________________________________ Kernel Information in Process Core Dumps Contact: Mikolaj Golub <trociny at freebsd.org> When doing postmortem analysis of a crashed process it is sometimes very useful to have kernel information about the process at the moment of the crash, like open file descriptors or resource limits. For a live process this information can be obtained via sysctl(3) interface e.g. using procstat(1). The aim of the project is to add additional notes to a process core dump, which include process information from the kernel at the moment of the process crash, teach libprocstat(3) to extract this information and make procstat(1) use this functionality. At the moment all necessary code changes are committed to HEAD and are going to be merge to stable/9 in 1 month. __________________________________________________________________ mdoc.su -- Short Manual Page URLs URL: http://mdoc.su/ URL: http://nginx.conf.mdoc.su/mdoc.su.nginx.conf URL: https://github.com/cnst/mdoc.su URL: http://lists.freebsd.org/pipermail/freebsd-doc/2013-February/021465.html Contact: Constantine A. Murenin <cnst++ at FreeBSD.org> mdoc.su is a deterministic URL shortener for BSD manual pages, written entirely in nginx.conf. Since the original announcement, OS version support has been added (e.g. /f91/ and /FreeBSD-9.1/ etc.), as well as dynamic multi-flavour web-pages with multiple links (e.g. http://mdoc.su/f,d/ifnet.9 and http://mdoc.su/-/mdoc), which even let you specify the versions too (e.g. http://mdoc.su/f91,n60,o52,d/mdoc). The source code for the whole site is available under a BSD licence. Open tasks: 1. Fork it on GitHub (see links)! __________________________________________________________________ Multipath TCP (MPTCP) for FreeBSD URL: http://caia.swin.edu.au/urp/newtcp/mptcp/tools.html URL: http://caia.swin.edu.au/newtcp/mptcp/ URL: http://caia.swin.edu.au/reports/130424A/CAIA-TR-130424A.pdf URL: https://pub.allbsd.org/FreeBSD-snapshots/ Contact: Nigel Williams <njwilliams at swin.edu.au> Contact: Lawrence Stewart <lastewart at swin.edu.au> Contact: Grenville Armitage <garmitage at swin.edu.au> We have been working to create a BSD-licensed implementation of Multipath TCP -- a set of TCP extensions that allow for transparent multipath operation with multiple IP addresses as specified in experimental RFC6824. We made our first v0.1 public release on 2013-03-11 and recently released v0.3 on 2013-04-16. The code is currently considered to be of alpha quality. We are working towards pushing the code into a FreeBSD Subversion repository project branch to continue the on-going development effort in a more publicly accessible location. As part of this move, we hope to begin releasing regular snapshot installer ISOs of the MPTCP project branch courtesy of Hiroki Sato and the allbsd.org daily snapshot infrastructure. We are about to release a CAIA technical report 130424A entitled "Design Overview of Multipath TCP version 0.3 for FreeBSD 10" on 2013-04-24 which provides a high-level design and architecture overview of the v0.3 code release. Going forward, we expect to continue development and release additional technical reports and academic papers covering topics such as performance analysis and multipath congestion control/scheduling. Open tasks: 1. The code is currently of alpha quality so we welcome all testing feedback, but please familiarize yourself with the README file and "Known Limitations" section in particular before jumping in. __________________________________________________________________ Native iSCSI Stack URL: https://wiki.freebsd.org/Native%20iSCSI%20target Contact: Edward Tomasz Napieral/a <trasz at FreeBSD.org> Focus of the project was extended to also include a new iSCSI initiator. Compared to the old one, it is more reliable, much more user-friendly, and somewhat faster. It uses exactly the same configuration file format as the old one to make migration easier. As for the target side, it was verified to work properly against major initiators (FreeBSD, Linux, Solaris, Windows and VMWare ESX). This project is being sponsored by FreeBSD Foundation. Open tasks: 1. RDMA support, for both the target and the initiator. 2. Performance optimization. __________________________________________________________________ PyPy URL: http://wiki.FreeBSD.org/PyPy Contact: David Naylor <dbn at FreeBSD.org> PyPy has been successfully updated to 2.0-beta1 with 2.0-beta2 finishing translating and other tests. Many major changes were made to the PyPy port fr the 2.0-beta1 release, these include: * Reworking the build script. * Optionally use pypy (when available) for self-translating. * Refine memory checks. * Fix the test target. Although the port is in a healthy state; PyPy on FreeBSD has some rough edges (see make test for examples of roughness). Open tasks: 1. Fix failed unit tests. 2. Integrate PyPy into bsd.python.mk. 3. See the project page for more items. __________________________________________________________________ racct: Block IO Accounting URL: https://wiki.freebsd.org/RudolfTomori/IOLimits Contact: Rudolf Tomori <rudot at FreeBSD.org> This project adds the block IO access accounting to the racct/rctl resource limiting framework, a working prototype implementation is available. __________________________________________________________________ Read-only Port of NetBSD's UDF File System URL: https://github.com/williamdevries/UDF Contact: Will DeVries <william.devries at gmail.com> An initial read-only port of NetBSD's UDF file system has been largely completed. (The UDF file system is often used on CD, DVD and Blu-Ray discs.) This port provides a number of advantages over FreeBSD's current UDF implementation, which include: * Support for version 2.60 of the UDF file system specification. FreeBSD's current implementation only partially supports version 1.5 of the standard, which was released in 1997. Since Windows and other systems support newer version of this file system, our users are left without the ability to read some media written by these systems. In addition, Blu-Ray discs are commonly written using version 2.50 or 2.60. * The ability to override the owner and group for all the files and directories on a UDF volume using mount options. * The ability to set the owner and group for files and directories that lack defined owner or group information using mount options. (The UDF specification allows for files and directories without owners or groups.) * The ability to override the mode for all directories and files on a volume using mount options. * Support for mounting previous versions of incrementally recorded media, like CD-Rs. __________________________________________________________________ TCP-AO Authentication Option URL: http://svnweb.freebsd.org/base/user/andre/tcp-ao/ Contact: Andr? Oppermann <andre at FreeBSD.org> Work is under way to implement TCP-AO (TCP Authentication Option) according to RFC5925 and RFC5926. TCP-AO is an extension to TCP-MD5 signatures commonly used in routers to secure BGP routing protocol sessions against spoofing attacks. The work is under contract and sponsored by Juniper Networks. __________________________________________________________________ The entities Documentation Branch URL: http://svnweb.freebsd.org/doc/projects/entities/ Contact: Ren? Ladan <rene at FreeBSD.org> The entities branch was created to reduce duplication of committer entities. Currently there is one in authors.ent (with email addresses) and another one in developers.ent (without email addresses). This seems to be a leftover from the doc/www split in earlier times. To remedy this, developers.ent is merged into authors.ent and entities with email addresses are postfixed as such. Apart from the instructions for the initial commit, there should be little user-visible changes. Some related cleanups, like cleaning up team definitions, replacing literal names by entities from authors.ent, and adding missing names to authors.ent are also made. Open tasks: 1. Finish processing of the <email> tag. 2. Send out a CFT. 3. Merge back into head branch. __________________________________________________________________ The FreeBSD Japanese Documentation Project URL: http://www.FreeBSD.org/ja/ URL: http://www.jp.FreeBSD.org/doc-jp/ Contact: Hiroki Sato <hrs at FreeBSD.org> Contact: Ryusuke Suzuki <ryusuke at FreeBSD.org> Web page (htdocs): Newsflash and some other updates in the English version have been translated to keep them up-to-date. Specifically, the release related contents were updated in this period. Books: FreeBSD Handbook has constantly been updated since the last report; particularly, "ports", "desktop" section were largely updated. Some progress has been made in the "advanced-networking" section, contributed by a new translator. "Writing FreeBSD Problem Reports" article is now in sync with the English version. Open tasks: 1. Further translation work of outdated documents in ja_JP.eucJP subtree. __________________________________________________________________ UFS/FFS Performance Work URL: http://www.mckusick.com/publications/faster_fsck.pdf Contact: Kirk McKusick <mckusick at mckusick.com> Some work on the performance of UFS/FFS has been recently committed to HEAD. The purpose of the corresponding change to the FFS layout policy is to reduce the running time for a full file system check. It also reduces the random access time for large files and speeds up the traversal time for directory tree walks. The key idea is to reserve a small area in each cylinder group immediately following the inode blocks for the use of metadata, specifically indirect blocks and directory contents. The new policy is to preferentially place metadata in the metadata area and everything else in the blocks that follow the metadata area. The size of this area can be set when creating a filesystem using newfs(8) or changed in an existing filesystem using tunefs(8). Both utilities use the -k held-for-metadata-blocks option to specify the amount of space to be held for metadata blocks in each cylinder group. By default, newfs(8) sets this area to half of minfree (typically 4% of the data area). As with all layout policies, it only affect layouts of things allocated after it is put in place. So these changes will primarily be noticable on newly created file systems. File system checks have been sped up by caching the cylinder group maps in pass1 so that they do not need to be read again in pass5. As this nearly doubles the memory requirement for fsck(8), the cache is thrown away if other memory needs in fsck(8) would otherwise fail. Thus, the memory footprint of fsck(8) remains unchanged in memory constrained environments. This optimization will be evident on all UFS/FFS filesystems. This work was inspired by a paper presented at Usenix's FAST '13. Open tasks: 1. MFC to 9-STABLE and possibly 8-STABLE should happen by May unless problems arise with these changes in HEAD. __________________________________________________________________ Wine32 on FreeBSD/amd64 URL: http://wiki.freebsd.org/i386-Wine Contact: David Naylor <dbn at FreeBSD.org> The i386-wine port (formally wine-fbsd64) has been added to the ports collection (as emulators/i386-wine-devel). Although the port can only be compiled under a x86 32-bit system the resulting package can be installed on a x86 64-bit system and enable running of 32-bit Microsoft Windows programs. Packages for the port are in development and should be announced shortly on the freebsd-questions and freebsd-emulation mailing lists. There are some issues with Wine32 on FreeBSD/amd64 -- possibly related to FreeBSD32_COMPACT, or other general 32/64-bit issues -- that could do with some focus. Open tasks: 1. Port wine64 to FreeBSD. 2. Port WoW64 (wine32 and wine64 together) to FreeBSD. 3. Fix 32- and 64-bit issues (such as Intel graphics not accelerating). __________________________________________________________________ Xfce/FreeBSD URL: https://wiki.FreeBSD.org/Xfce URL: http://people.freebsd.org/~olivierd/patches/midori-0.4.9_0.5.0.diff Contact: FreeBSD Xfce Team <xfce at FreeBSD.org> The Xfce FreeBSD Team has updated many ports, especially: * tumbler: 0.1.27 (add new option, COVER) * Parole: 0.5.0 * xfdesktop: 4.10.2 * Midori: 0.4.9 (full compatible with Vala 0.18), 0.5.0 is available (see links) * Orage: 4.8.4 * xfce4-terminal: 0.6.1 (renamed by upstream, previous name was Terminal) This last application contains drop-down functionality, new window slides down from the top of the screen when key (we can define keyboard shortcut) is pressed. Open tasks: 1. Replace libxfce4gui (deprecated and not maintained by upstream) by libxfce4ui in order to enhance support panel plugins for Xfce > 4.10. 2. Work on Midori Gtk3 port. 3. Fix gtk-xfce-engine with Gtk+ >=3.6. __________________________________________________________________ xorg on FreeBSD URL: http://wiki.freebsd.org/Xorg URL: http://people.freebsd.org/~zeising/xorg-7.7.diff URL: http://trillian.chruetertee.ch/ports/browser/trunk URL: http://trillian.chruetertee.ch/ports/browser/branches/xorg-7.7 Contact: FreeBSD X11 Team <x11 at FreeBSD.org> Contact: Niclas Zeising <zeising at FreeBSD.org> Contact: Koop Mast <kwm at FreeBSD.org> Most of the work during this period has been in updating, testing and stabilizing the development repository. A number of xorg applications and various other leaf ports has been committed as part of this effort. After this a CFT was sent out asking for help in testing the remaining bits in development, including updates to all major libraries and xorg-server. Currently, the CFT patch has been submitted for an exp-run to iron out any final bugs. The plan is to merge it sometime after FreeBSD 8.4 is released and the ports tree is reopened for commits. Work is also on-going to port new versions of MESA and OpenGL, as well as a new version of xorg-server, and perhaps in the future, Wayland. These are considered more long-term goals and are not targeted for the current update. Open tasks: 1. Decide how to handle the new and old xorg distributions. In recent xorg, a lot of legacy driver support has been dropped, therefore we need to maintain two xorg distributions to not lose a lot of hardware drivers. Currently, this is done by setting the flag WITH_NEW_XORG in /etc/make.conf, but a more practical solution is needed. This is especially important since the flag is not very user-friendly, and since there currently will be no official packages for the new distribution. 2. Continue to test and update xorg related ports. There are new versions of xserver, as well as MESA and related OpenGL libraries which needs to be ported and eventually integrated into the ports tree. 3. Port Wayland. The future of graphical environments in open source operating systems seems to be Wayland. This needs to be ported to FreeBSD so that a wider audience can test it, and so that it eventually can be integrated into the ports tree, perhaps as a replacement for the current xorg. 4. Look into replacements for HAL. HAL is used for hot-plugging of devices, but it has been long abandoned by Linux. A replacement, perhaps build on top of devd would be nice to have. This work should be coordinated with the FreeBSD GNOME and KDE teams. __________________________________________________________________