-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
FreeBSD Project Quarterly Status Report: April - June 2014
This report covers FreeBSD-related projects between April and June
2014. This is the second of four reports planned for 2014.
The second quarter of 2014 was a very busy and productive time for the
FreeBSD Project. A new FreeBSD Core Team was elected, the FreeBSD Ports
Management Team branched the second quarterly "stable" branch, the
FreeBSD Release Engineering Team was in the process of finalizing the
FreeBSD 9.3-RELEASE cycle, and many exciting new features have been
added to FreeBSD.
Thanks to all the reporters for the excellent work! This report
contains 24 entries and we hope you enjoy reading it.
The deadline for submissions covering the period from July to September
2014 is October 7th, 2014.
__________________________________________________________________
FreeBSD Team Reports
* FreeBSD Core Team
* FreeBSD Port Management Team
* FreeBSD Release Engineering Team
Projects
* Chelsio iSCSI Offload Support
* CUSE4BSD
* FreeBSD and Summer of Code 2014
* New Automounter
* pkg(8)
* QEMU bsd-user-Enabled Ports Building
* RPC/NFS and CTL/iSCSI Performance Optimizations
* ZFSguru
Kernel
* PostgreSQL Performance Improvements
* Running FreeBSD as an Application on Top of the Fiasco.OC
Microkernel
* SDIO Driver
* TMPFS Stability
* UEFI Boot
* Updated vt(4) System Console
Architectures
* FreeBSD/arm64
Ports
* FreeBSD Python Ports
* KDE/FreeBSD
* The Graphics Stack on FreeBSD
Documentation
* Quarterly Status Reports
Miscellaneous
* FreeBSD Host Support for OpenStack and OpenContrail
* The FreeBSD Foundation
__________________________________________________________________
FreeBSD Core Team
Contact: FreeBSD Core Team <core at FreeBSD.org>
The FreeBSD Core Team constitutes the project's "Board of
Directors",
responsible for deciding the project's overall goals and direction as
well as managing specific areas of the FreeBSD project landscape.
Topics for core this quarter have included some far-reaching policy
reviews and some significant changes to the project development
methodology.
In May, a new release policy was published and presented at the BSDCan
developer conference by John Baldwin. The idea is that each major
release branch (for example, 10.X) is guaranteed to be supported for at
least five years, but individual point releases on each branch, like
10.0-RELEASE, will be issued at regular intervals and only the latest
point release will be supported.
Another significant change did not receive approval. When the change to
the Bylaws reforming the core team election process was put to the vote
of all FreeBSD developers, it failed to reach a quorum.
June saw the culmination of a long running project to replace the
project's bug tracking system. As of June 3, the FreeBSD project has
switched to Bugzilla as its bug tracking system. All of the history of
GNATS PRs has been preserved, so there is no need to re-open old
tickets. Work is still going on to replicate some of the integration
tweaks that had been applied to GNATS, but all necessary functionality
has been implemented and the project is already seeing the benefits of
the new capabilities brought by Bugzilla.
An election to select core members for the next two year term of office
took place during this period. We would like to thank retiring members
of core for their years of service. The new core team provides
continuity with previous core teams: about half are incumbents from the
previous team, and several former core team members have returned after
a hiatus. Core now includes two members of the FreeBSD Foundation board
and one other Foundation staff member, aiding greater coordination at
the top level of the project. At the same time the core-secretary role
was passed on to a new volunteer.
Other activities included providing consultation on licensing terms for
software within the FreeBSD source tree, and oversight of changes to
the membership of postmaster and clusteradm.
Three new src commit bits were issued during this quarter, and one was
taken into safekeeping.
__________________________________________________________________
FreeBSD Port Management Team
URL: http://www.FreeBSD.org/ports/
URL: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/
URL: http://portsmon.freebsd.org/index.html
URL: http://www.freebsd.org/portmgr/index.html
URL: http://blogs.freebsdish.org/portmgr/
URL: http://www.twitter.com/freebsd_portmgr/
URL: http://www.facebook.com/portmgr
URL: http://plus.google.com/communities/108335846196454338383
Contact: Frederic Culot <portmgr-secretary at FreeBSD.org>
Contact: FreeBSD Port Management Team <portmgr at FreeBSD.org>
The ports tree slowly approaches the 25,000 ports threshold, while the
PR count is slightly below 1800.
In Q2 we added three new committers, took in one commit bit for
safekeeping, and reinstated one commit bit.
In May, Thomas Abthorpe was replaced by Frederic Culot as portmgr
secretary, and Steve Wills became a member of the portmgr team.
Commencing July 1, the third intake of portmgr-lurkers started active
duty on portmgr for a four month duration. The next two candidates are
William Grzybowski and Nicola Vitale.
This quarter also saw the release of the second quarterly branch,
namely 2014Q2. This branch was not only built for 10 (as 2014Q1) but
for 9 as well (both i386 and amd64).
Open tasks:
1. As previously noted, many PRs continue to languish, we would like
to see committers dedicate themselves to closing as many as
possible.
__________________________________________________________________
FreeBSD Release Engineering Team
URL: http://www.freebsd.org/releases/9.3R/schedule.html
URL: http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/
Contact: FreeBSD Release Engineering Team <re at FreeBSD.org>
The FreeBSD Release Engineering Team is responsible for setting and
publishing release schedules for official project releases of FreeBSD,
and announcing code freezes and maintaining the respective branches,
among other things.
In early May, the FreeBSD 9.3-RELEASE cycle entered the code slush
phase. The FreeBSD 9.3-RELEASE cycle is nearing the final phases, and
9.3-RC3 builds will be starting soon. 9.3-RC3 is planned to be the
final release candidate for this release cycle, and at the time of this
writing, 9.3-RELEASE should be available on schedule.
Work is ongoing to integrate support for embedded architectures into
the release build process. At this time, support exists for a number of
ARM kernels, in particular the Raspberry Pi, BeagleBone, and WandBoard.
Additionally, work is in progress to produce virtual machine images as
part of the release cycle, supporting various cloud services such as
Microsoft Azure, Amazon EC2, and Google Compute Engine.
This project is sponsored by The FreeBSD Foundation .
__________________________________________________________________
Chelsio iSCSI Offload Support
Contact: Sreenivasa Honnur <shonnur at chelsio.com>
Building on the new in-kernel iSCSI target and initiator stack released
in FreeBSD 10.0, Chelsio Communications has begun developing an offload
interface to take advantage of the hardware offload capabilities of
Chelsio T4 and T5 10 and 40 gigabit Ethernet adapters.
The code currently implements a working prototype of offload for the
initiator side, and target side offload should begin shortly. The code
will be released under the BSD license and is expected to be completed
later in the year and be committed to FreeBSD-HEAD, and will likely
ship in a FreeBSD release in early 2015.
Open tasks:
1. Complete testing and debugging of the initiator offload.
2. Start development of target offload.
3. Create hardware-independent offload APIs, based on experiences with
target and initiator proof-of-concept implementations.
__________________________________________________________________
CUSE4BSD
URL: http://svnweb.freebsd.org/changeset/base/266581
Contact: Hans Petter Selasky <hselasky at FreeBSD.org>
The so-called CUSE4BSD has been imported into the base system of
FreeBSD-11. CUSE is short for character device in userspace. The CUSE
library is a wrapper for the devfs(8) kernel functionality which is
exposed through /dev/cuse. In order to function, the CUSE kernel code
must either be enabled in the kernel configuration file or loaded
separately as a module. Follow the commit message link to get more
information.
__________________________________________________________________
FreeBSD and Summer of Code 2014
URL: http://gsoc.FreeBSD.org
URL: https://wiki.freebsd.org/SummerOfCode2014
Contact: Gavin Atkinson <gavin at FreeBSD.org>
Contact: Glen Barber <gjb at FreeBSD.org>
Contact: Wojciech Koszek <wkoszek at FreeBSD.org>
FreeBSD received 39 project proposals this year, many of which were of
a very high standard. After a difficult selection process narrowing
these down into the slots we had been allocated, a total of 16 projects
were selected to participate in Google Summer of Code 2014 with
FreeBSD.
The projects selected span a wide range of areas within FreeBSD,
covering both the base system and ports infrastructure, userland and
kernel. We have students working on firewall optimisation, ports
packaging tools, embedded systems, debugging infrastructure, improved
Unicode support, enhancements to the loader and to the installer, and
several other areas of work. We are just over halfway through the
allocated time this year, and are very much looking forward to
integrating code produced by these projects into FreeBSD.
This is the tenth time FreeBSD has taken part in Google's Summer of
Code, and we are grateful to Google to have accepted us as a
participating organisation.
__________________________________________________________________
New Automounter
Contact: Edward Tomasz Napieral/a <trasz at FreeBSD.org>
Deficiencies in the current automounter, amd(8), are a recurring
problem reported by many FreeBSD users. A new automounter is being
developed to address these concerns.
The automounter is a cleanroom implementation of functionality
available in most other Unix systems, using proper kernel support
implemented via an autofs filesystem. The automounter supports a
standard map format, and will integrate with the Lightweight Directory
Access Protocol (LDAP) service.
The project is at the early testing stage. A patch will be released as
part of a broader call for testing after additional review on some
critical components (in particular, the autofs filesystem). After
fixing reported problems, the code will be committed to
FreeBSD 11-CURRENT. It is expected to ship in the FreeBSD 10.2 release.
This project is sponsored by The FreeBSD Foundation .
Open tasks:
1. Fix bad interaction with fts(3).
2. Debug a problem with Kerberos NFS mounts.
__________________________________________________________________
pkg(8)
URL: https://github.com/freebsd/pkg
URL: https://github.com/freebsd/pkg/issues
Contact: Baptiste Daroussin <bapt at FreeBSD.org>
Contact: Bryan Drewery <bryan at FreeBSD.org>
Contact: Matthew Seaman <matthew at FreeBSD.org>
Contact: Vsevolod Stakhov <vsevolod at FreeBSD.org>
Contact: The pkg mailing list <freebsd-pkg at FreeBSD.org>
pkg(8) is the new package management tool for FreeBSD. It is now the
only supported package management tool for FreeBSD releases from
10.0-RELEASE, including the upcoming 9.3-RELEASE. pkg(8) is available
on all currently supported releases. Support for the legacy pkg_tools
is due to be discontinued at the beginning of September 2014.
The release of pkg(8) 1.3 is imminent. This includes major improvements
in the dependency solver. Now we can:
* Switch versions of, for example, Perl or PHP and resolve all the
conflicts with packages that depend on them automatically. No more
need to manually switch package origins.
* Deal more gracefully with complex upgrade or install scenarios.
* Sandbox operations dealing with freshly downloaded data until it
can be verified as trustworthy by checking the package signature.
* Deal with provides-and-requires style of dependencies, so for
example we can say "this package needs to use a web server" and
allow that dependency to be fulfilled by apache or nginx or any
other alternative that provides web-server functionality.
Beyond the next release, we have work in progress on allowing ranges of
versions in dependency rules and handling a selection of "foreign"
package repositories, such as CPAN or CTAN or PyPi.
There are plans to use pkg(8) to package up the base system. Along with
other benefits, this will allow writing a universal installer: download
one installer image and from there install any available version of
FreeBSD, including snapshots.
We are also intending to use pkg(8) within the ports tree at
package-build time to handle fulfilling build dependencies. This opens
the possibility of installing build-dependencies by downloading binary
packages, which means you can install a package with customized options
with the minimum amount of time spent compiling anything else.
Open tasks:
1. We are sorely lacking a comprehensive testing setup. Integrating
automated regression testing into the development cycle is becoming
an imperative.
2. We need testers who can run development versions of pkg in as many
distinct types of use-cases as possible, and report feedback from
their experiences to the freebsd-pkg at freebsd.org mailing list or
our issues list on github.
__________________________________________________________________
QEMU bsd-user-Enabled Ports Building
URL: https://wiki.freebsd.org/QemuUserModeHowTo
URL: http://dirty.ysv.freebsd.org/
URL: https://github.com/seanbruno/qemu-bsd-user
Contact: Stacey Son <sson at FreeBSD.org>
Contact: Juergen Lock <nox at FreeBSD.org>
Contact: Sean Bruno <sbruno at FreeBSD.org>
The ports-mgmt/poudriere-devel port is capable of building ports via an
emulator. Configuration of the miscellaneous binary image activator is
required prior to a poudriere-devel run.
ARMV6, MIPS32 and MIPS64 packages can be produced via full emulation.
There are several packages that block a full run of builds. They can be
viewed on the "Status of ports building" link.
To build packages via emulation, on current or latest stable/10:
Clone the github repository, and switch to the bsd-user branch. Then
run:
./configure --static \
--target-list="arm-bsd-user i386-bsd-user \
mips-bsd-user mips64-bsd-user mips64el-bsd-user \
mipsel-bsd-user ppc-bsd-user ppc64-bsd-user sparc-bsd-user \
sparc64-bsd-user x86_64-bsd-user"
gmake; gmake install
Then set up the binmiscctl tools to do some evil hackery to redirect
execution of armv6 binaries to qemu:
binmiscctl add armv6 --interpreter \ "/usr/local/bin/qemu-arm"
--magic
\ "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02
\
\x00\x28\x00" --mask
"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff
\
\xff\xff\xff\xff\xfe\xff\xff\xff" --size 20 --set-enabled
Install poudriere-devel from ports. It knows how to set up things.
Create a poudriere jail to do all the magic:
poudriere jail -c -j 11armv632 -m svn -a armv6 \
-v head
Now run poudriere against that jail to build all the ports:
poudriere bulk -j 11armv632 -a
Nullfs mount the ports tree into the jail:
mkdir /usr/local/poudriere/jails/11armv632/usr/ports
mount -t nullfs /usr/ports
/usr/local/poudriere/jails/11armv632/usr/ports
To chroot into the jail:
mount -t devfs devfs /usr/local/poudriere/jails/11armv632/dev
chroot /usr/local/poudriere/jails/11armv632/
Open tasks:
1. PPC on AMD64 emulation. This is a work in progress as there appear
to be some serious issues running the bsd-user binary on big-endian
hardware. Justin Hibbits is working on this.
2. SPARC64 on AMD64 emulation is non-functional and instantly
segfaults. We are looking for someone to poke at the bits here.
3. External Toolchain, XDEV support. There is partial support for
using an AMD64 toolchain that can output binaries for other
architecture (e.g., using an AMD64 toolchain to build MIPS64
packages). We are currently tracking a linking issue with
ports-mgmt/pkg. Thanks to Warner Losh, Baptiste Daroussin, Dimitry
Andric for poking at bits in here to make the XDEV target useful.
4. Signal handling. The MIPS/ARMV6 target stills display a failure
that manifests itself when building devel/p5-Sys-SigAction.
5. Massive documentation update needed. These modifications actually
allow chrooting into a MIPS or ARMv6 environment and using native
toolchains and libraries to prototype software for a target
platform.
__________________________________________________________________
RPC/NFS and CTL/iSCSI Performance Optimizations
Contact: Alexander Motin <mav at FreeBSD.org>
The FreeBSD RPC stack, used as a base for its NFS server, received
multiple optimizations to improve performance and SMP scalability.
Algorithmic optimizations reduced processing overhead, while improved
locking allowed it to scale up to at least 40 processor cores without
significant lock congestion. Combined with some other kernel
optimizations, the peak NFS request rate increased by many times,
reaching up to 600K requests per second on modern hardware.
The CAM Target Layer (CTL), used as the base for the new kernel iSCSI
server, also received a series of locking optimizations which allowed
its peak request rate to increase from ~200K to ~600K IOPS with the
potential of reaching a rate of 1M requests per second. That rate is
sufficient to completely saturate 2x10Gbit Ethernet links with 4KB
requests. For comparison, the port of net/istgt (user-level iSCSI
server) on the same hardware with an equivalent configuration showed
only 100K IOPS.
There is also ongoing work on improving CTL functionality. It was
already made to support three of four VMware VAAI storage acceleration
primitives (net/istgt supports 2), while the goal is to reach full VAAI
support during next months.
With all these improvements, and earlier improvements in CAM, GEOM,
ZFS, and a number of other kernel areas coming soon, FreeBSD 10.1 may
become the fastest storage release ever. ;)
These projects are sponsored by iXsystems, Inc.
__________________________________________________________________
ZFSguru
URL: http://zfsguru.com
URL: http://zfsguru.com/news/stateoftheproject/2014
Contact: Jason Edwards <sub.mesa at gmail.com>
ZFSguru is a multifunctional server appliance with a strong emphasis on
storage. ZFSguru began as simple web-interface frontend to ZFS, but has
since grown into a FreeBSD derivative with its own infrastructure. The
scope of the project has also grown with the inclusion of add-on
packages that add functionality beyond the traditional NAS
functionality found in similar product like FreeNAS and NAS4Free.
ZFSguru aims to be a true multifunctional server appliance that is
extremely easy to setup and can unite both novice and more experienced
users in a single user interface. The modular nature of the project
combats the danger of bloat, whilst still allowing extended
functionality to be easily deployed.
Where development in the first quarter of this year brought
drag-and-drop permissions for Samba and NFS, development in the second
quarter focused on strengthening the infrastructure of the project. A
new library and toolkit solution dubbed 'Mesa' is in the works,
providing a cleaner foundation to the project. A new master server
providing secure remote services is being setup, to be located in a
high-speed datacenter. But most importantly, a new system build
infrastructure has shown great progress and will soon be able to
provide automated system builds to our users. This not only improves
the frequency of system releases but also frees much developer time to
be spent on different areas of the project.
Furthermore, a new website and forum is being worked on, replacing the
old-fashioned website that offers only limited functionality. The new
website will be linked to the server database, providing real-time
updates about the project.
In addition, a new platform for collaborative development is in the
works. A service addon has been created for the GitLab project, which
is a drop-in replacement of the popular GitHub website. The choice was
made to host our own solution and not rely on GitHub itself. In
retrospect this appears to be a good decision. The recent development
where GitHub removed projects after DCMA takedowns being sent is
incompatible with the philosophy of free-flow-of-information, which the
ZFSguru project is a strong proponent of. By hosting our own solution,
we have avoided any dependency on third party projects.
It is expected that after the infrastructure of the project has been
revamped, work on the web-interface itself can continue. New
functionality such as GuruDB and Service Bulletins provide a tighter
connection between the server infrastructure and the web-interface. The
Migration Manager is one of the last remaining features still missing
in the web-interface. This functionality provides an easy way to
upgrade the current system by performing a new clean installation, but
migrate all relevant configuration to the new installation. It also
allows to backup all system configuration in a single file to be stored
on a different machine should things go awry.
A longer version of this status report giving a wider perspective on
the project can be found at the stateoftheproject link.
__________________________________________________________________
PostgreSQL Performance Improvements
URL: https://www.kib.kiev.ua/kib/pgsql_perf_v2.0.pdf
Contact: Konstantin Belousov <kib at FreeBSD.org>
Analysis of the performance of the latest 9.3 version of PostgreSQL on
FreeBSD-CURRENT has been performed. The issues which prevented good
scalability on a 40-core machine were determined, and changes
prototyped which solve the bottlenecks.
The URL above provides a paper which contains a detailed explanation of
the issues and solutions, together with a graph demonstrating the
effects on scalability.
This project is sponsored by The FreeBSD Foundation.
__________________________________________________________________
Running FreeBSD as an Application on Top of the Fiasco.OC Microkernel
URL: http://en.wikipedia.org/wiki/L4_microkernel_family
URL: https://wiki.freebsd.org/201407DevSummit/BSDUserspace
Contact: Ilya Bakulin <ilya at bakulin.de>
Fiasco.OC belongs to the L4 microkernel family. A microkernel provides
a bare minimum of services to the applications running on top of it,
unlike traditional kernels that incorporate complex code like IP stacks
and device drivers. This allows a dramatic decrease in the amount of
code running in the privileged mode of the CPU, achieving higher
security while still providing an acceptable level of performance.
Running an operating system kernel on top of the microkernel allows
leveraging any software that was developed for that operating system.
The OS kernel runs in user-mode side-by-side with other microkernel
applications such as real-time components. Multiple OSes, each with
their userland applications, can even be run in parallel, thus allowing
construction of products where processing of corporate data is strictly
separated from the processing of private data.
The project aims to create a port of FreeBSD to the Fiasco.OC
microkernel, a high performance L4 microkernel developed by TU Dresden.
Existing ports of OpenBSD and Linux are used as a reference. This will
allow the use of unique FreeBSD features like ZFS in L4-based projects.
Open tasks:
1. Finish opensourcing the port of L4OpenBSD/amd64 made by genua mbh.
This is a work in progress.
2. Publish the sources of the L4FreeBSD port that is largely based on
the L4OpenBSD code.
3. Improve the port, the first task being adopting the pmap(9) module
to work with L4 microkernel memory allocation services.
__________________________________________________________________
SDIO Driver
URL: https://wiki.freebsd.org/SDIO
URL: https://github.com/kibab/freebsd/tree/mmccam
Contact: Ilya Bakulin <ilya at bakulin.de>
SDIO is an interface designed as an extension of the existing SD card
standard, which allows the connecting of different peripherals to a
host with a standard SD controller. Peripherals currently sold on the
general market include WLAN/BT modules, cameras, fingerprint readers,
and barcode scanners. Additionally, SDIO is used to connect some
peripherals in products like Chromebooks and Wandboards. A prototype of
the driver for the Marvell SDIO WLAN/BT (Avastar 88W8787) module is
also being developed, using the existing Linux driver as the reference.
SDIO card detection and initialization already work. Most necessary bus
methods are implemented and tested.
The WiFi driver is able to load firmware onto the card and initialize
it. A rewrite of the MMC stack as a transport layer for the CAM
framework is in progress. This will allow utilization of the
well-tested CAM locking model and debug features.
Open tasks:
1. SDIO stack: finish CAM migration. The initialization of the MMC/SD
card is implemented in the XPT layer, but cannot be tested with
real hardware because of the lack of any device drivers that
implement peripheral drivers and SIMs for CAM MMC. The plan is to
use a modified version of the BeagleBone Black SDHCI controller
driver for the SIM and a modified version of mmcsd(4) as a
peripheral driver.
2. Marvell SDIO WiFi: connect to the FreeBSD network stack, write the
code to implement required functions (such as sending/receiving
data, network scanning and so on).
__________________________________________________________________
TMPFS Stability
Contact: Konstantin Belousov <kib at FreeBSD.org>
Contact: Peter Holm <pho at FreeBSD.org>
Extensive testing of tmpfs(5) using the stress2 kernel test suite was
done. The issues found were debugged and fixed.
Most of the problems are related to bugs in the interaction of the
vnode and node lifetime, culminating in e.g., unmount races and dotdot
lookup bugs.
This project is sponsored by The FreeBSD Foundation.
__________________________________________________________________
UEFI Boot
URL: https://wiki.freebsd.org/UEFI
URL: http://www.freebsd.org/snapshots/
Contact: Ed Maste <emaste at FreeBSD.org>
Contact: Nathan Whitehorn <nwhitehorn at FreeBSD.org>
The Unified Extensible Firmware Interface (UEFI) provides boot- and
run-time services for x86 and other computers. For the x86 architecture
it replaces the legacy BIOS. This project will adapt the FreeBSD loader
and kernel boot process for compatibility with UEFI firmware, found on
contemporary servers, desktops, and laptops.
Ed and Nathan completed a number of integration tasks over the past
three months. Nathan added a first-stage loader, boot1.efi, to support
chain-loading the rest of the system from a UFS filesystem. This allows
the UEFI boot process to proceed in a similar fashion as with BIOS
boot. Nathan also added UEFI support to the FreeBSD installer and
release image creation script.
The EFI framebuffer requires the vt(4) system console -- a framebuffer
driver is not implemented for the legacy syscons(4) console. Ed added
automatic vt(4) selection to the UEFI boot path.
Snapshots are now built as dual-mode images, and should boot via both
BIOS and UEFI. Our plan is to merge the UEFI and vt(4) work to
stable/10 to appear in FreeBSD 10.1-RELEASE.
This project is sponsored by The FreeBSD Foundation.
Open tasks:
1. Document manual installation, including dual-boot configurations.
2. Implement boot1.efi for ZFS file systems.
3. Add support for UEFI variables stored in non-volatile memory
(NVRAM).
4. Debug boot failures with certain UEFI firmware implementations.
5. Support secure boot.
__________________________________________________________________
Updated vt(4) System Console
URL: https://wiki.freebsd.org/Newcons
Contact: Aleksandr Rybalko <ray at FreeBSD.org>
Contact: Ed Maste <emaste at FreeBSD.org>
Contact: Ed Schouten <ed at FreeBSD.org>
Contact: Warren Block <wblock at FreeBSD.org>
The vt(4) (aka Newcons) project provides a replacement for the legacy
syscons system console. It brings a number of improvements, including
better integration with graphics modes and broader character set
support.
Since the last report, vt(4) gained the ability to make early driver
selection. vt(4) selects the best successfully-probed driver before
most other kernel subsystems are initialized. Also, to facilitate
migration from syscons(4) to vt(4), multiple virtual terminal
subsystems in the kernel are now supported. It is controlled by a small
module with just one kernel environment variable. Users can select the
virtual terminal system to use by setting kern.vty=sc or kern.vty=vt.
The GENERIC kernel configuration for the amd64 and i386 platforms now
includes both syscons(4) and vt(4) by default. This configuration is
also planned to be in FreeBSD 10.1-RELEASE.
The project finally received a man page, so now vt(4) is not only the
project name, but also a link to its documentation. Great thanks to
Warren Block for that.
Major highlights:
* Unicode support.
* Double-width character support for CJK characters.
* xterm(1)-like terminal emulation.
* Support for Kernel Mode Setting (KMS) drivers (i915kms, radeonkms).
* Support for different fonts per terminal window.
* Simplified drivers.
Brief status of supported architectures and hardware:
* amd64 (VGA/i915kms/radeonkms) -- works.
* ARM framebuffer -- works.
* i386 (VGA/i915kms/radeonkms) -- works.
* IA64 -- untested.
* MIPS -- untested.
* PPC and PPC64 -- work, but without X.Org yet.
* SPARC -- works on certain hardware (e.g., Ultra 5).
* vesa(4) -- in progress.
* i386/amd64 nVidia driver -- not supported. VGA should be used (VESA
planned).
* Xbox framebuffer driver -- will be deleted as unused.
This project is sponsored by The FreeBSD Foundation.
Open tasks:
1. Implement the remaining features supported by vidcontrol(1).
2. Write manual pages for vt(4) drivers and kernel interfaces.
3. Support direct handling of keyboard by the kbd device (without
kbdmux(4)).
4. CJK fonts. (This is in progress).
5. Address performance issues on some architectures.
6. Switch to vt(4) by default.
7. Convert keyboard maps for use with vt(4).
8. Implement compatibility mode to be able to use single-byte
charsets/key-codes in vt(4).
__________________________________________________________________
FreeBSD/arm64
URL: http://svnweb.freebsd.org/base/projects/arm64/
Contact: Andrew Turner <andrew at FreeBSD.org>
Arm64 is the name of the in-progress port of FreeBSD to the ARMv8 CPU
when it is in AArch64 mode. Until recently, all ARM CPU designs were
32-bit only. With the introduction of the ARMv8 architecture, ARM has
added a new 64-bit mode. This new mode has been named AArch64.
Booting FreeBSD on the ARM Foundation Model has made a lot of progress
since the last status report. An initial pmap implementation has been
written. With this, FreeBSD is able to enter the Machine Independent
boot code. The required autoconf functions have been added allowing
FreeBSD to start scheduling tasks. Finally the cpu_switch and copystr
functions were added. With these two, FreeBSD will boot to the
mountroot prompt.
Work has started on supporting exceptions, including interrupts. This
will allow more developers to start working on device drivers.
Open tasks:
1. Finish exception and interrupt handling
2. Read the Device Tree or ACPI tables from UEFI
3. Test on real hardware
__________________________________________________________________
FreeBSD Python Ports
URL: https://wiki.FreeBSD.org/Python
URL: irc://freebsd-python at irc.freenode.net
Contact: FreeBSD Python Team <python at FreeBSD.org>
We are pleased to announce the availability of conflict-free Python
package support across different Python versions based on the
USES=uniquefiles feature recently introduced to the Ports framework. A
Python package can be marked as buildable and installable in parallel
for different Python versions at the same time on the same host. The
package building tools, however, do not support this feature yet and
the Python team will work closely with portmgr and the pkg developers
to enable support on a global ports and packages scale.
In May and June a huge clean-up operation took place to remove the last
bits and pieces targeting easy_install. In the beginning of July we
committed the final changes to remove easy_install support completely
from the ports framework. This greatly simplifies the infrastructure
and allows us to modernize and maintain it with less effort.
We added Python 3.4, removed Python 3.1 after its end of life, updated
the setuptools ports to version 5.1 and PyPy's development version to
2.3.1. The latest Python 2.7.8 and an updated setuptools will hit the
tree shortly.
Our upstreaming effort continues to produce good outcomes for
simplifying maintenance and reducing complexity.
Looking forward, one of the top priorities is to comply with the USES
framework in the foreseeable future and to roll out a consistent
maintainer policy for integrating new Python-related ports into the
tree.
Open tasks:
1. Migrate bsd.python.mk to the Uses framework.
2. Develop a high-level and lightweight Python Ports Policy.
3. Add support for granular dependencies (for example >=1.0,<2.0).
4. See what adding pip (Python Package Index) support will require.
5. Add default QA targets and functions for Python ports
(TEST_DEPENDS, regression-test, etc.)
6. More tasks can be found on the team's wiki page (see links).
7. To get involved, come and say "hi" on IRC and let us know what
you
are interested in!
__________________________________________________________________
KDE/FreeBSD
URL: http://FreeBSD.kde.org
URL: http://FreeBSD.kde.org/area51.php
Contact: KDE/FreeBSD Team <kde at FreeBSD.org>
The KDE/FreeBSD team has continued to improve the experience of KDE
software and Qt under FreeBSD.
During this quarter, the team has kept most of the KDE and Qt ports
up-to-date, working on the following releases:
* KDE SC: 4.12.5; Workspace: 4.11.9
As a result -- according to PortScout -- kde@ has 526 ports (up from
526), of which 84.63% are up-to-date (down from 98.86%). iXsystems Inc.
continues to provide a machine for the team to build packages and to
test updates. iXsystems Inc. has been providing the KDE/FreeBSD team
with support for quite a long time and we are very grateful for that.
As usual, the team is always looking for more testers and porters so
please contact us at kde at FreeBSD.org and visit our home page at
http://FreeBSD.kde.org. It would be especially useful to have more
helping hands on tasks such as getting rid of the dependency on the
defunct HAL project and providing integration with KDE's Bluedevil
Bluetooth interface.
Open tasks:
1. Updating out-of-date ports, see PortScout for a list
2. Removing the dependency on HAL
__________________________________________________________________
The Graphics Stack on FreeBSD
URL: https://wiki.freebsd.org/Graphics
URL: http://lists.freebsd.org/pipermail/freebsd-announce/2014-July/001570.ht
ml
URL: http://trillian.chruetertee.ch/ports/browser/trunk
Contact: FreeBSD Graphics team <x11 at FreeBSD.org>
We were generally short on time this quarter. We made less progress
than expected on all fronts.
The alternate pkg(8) repository, built with WITH_NEW_XORG, is now
available. This alleviates the need for users to rebuild their ports
with WITH_NEW_XORG. See the announcement, linked above for further
information.
Thanks to a contribution from Jan Kokem?ller, Radeon 32bit ioctls are
now working on 64bit hosts. This was tested successfully with Wine and
StarCraft II on FreeBSD 9.x and 11. This required modifications to
emulators/i386-wine-devel so that it works with WITH_NEW_XORG, and the
creation of a new port, libtxc_dxtn, to support the texture compression
used by StarCraft II. We have not yet had the time to polish
everything, so this still requires manual steps.
The DRM generic code update is ready, but it breaks the current i915
driver. Therefore, the i915 driver must be updated before anything is
committed.
Compared to the previous status report, OpenCL test programs are
running fine now, thanks to upgrades and fixes to libc++ and Clang. The
relevant ports are still not ready to hit the ports tree,
unfortunately.
Open tasks:
1. See the "Graphics" wiki page for up-to-date information.
__________________________________________________________________
Quarterly Status Reports
Contact: Quarterly Status Report Team <monthly at FreeBSD.org>
These quarterly status reports help the FreeBSD community stay
up-to-date with the happenings in and around the project. Updates from
FreeBSD teams, new features being developed in- or out-of-tree,
products derived from FreeBSD, and FreeBSD events are all welcome
additions to the status reports.
The Monthly team has been busy since the last report, with longtime
organizer G?bor P?li having stepped down from the team -- thank you
G?bor for all your hard work! This has left something of a void in the
preparation of this report, for which the call for items was issued
quite late. To help fill the void, Warren Block and Benjamin Kaduk have
been added to the monthly@ team, joining Glen Barber, Gavin Atkinson,
Ed Maste, and the rest of the team in preparing this report. Special
thanks to Glen for doing most of the work while simultaneously getting
9.3-RELEASE out the door!
The next cycle is sooner than you think! The deadline for submitting
entries for the Q3 report is October 7th, 2014.
This project is sponsored by The FreeBSD Foundation.
Open tasks:
1. Submit reports for Q42014 to monthly at FreeBSD.org!
__________________________________________________________________
FreeBSD Host Support for OpenStack and OpenContrail
URL: http://www.openstack.org
URL: http://www.opencontrail.org
URL: https://github.com/Semihalf/openstack-devstack
URL: https://github.com/Semihalf/openstack-nova
URL: https://github.com/Semihalf/contrail-vrouter
URL: https://blueprints.launchpad.net/nova/+spec/freebsd-compute-node
Contact: Grzegorz Bernacki <gjb at semihalf.com>
Contact: Michal Dubiel <md at semihalf.com>
Contact: Dominik Ermel <der at semihalf.com>
Contact: Rafal Jaworowski <raj at semihalf.com>
OpenStack is a cloud operating system that controls large pools of
compute, storage, and networking resources in a datacenter.
OpenContrail is a network virtualization (SDN) solution comprising
network controller, virtual router, and analytics engine, which can be
integrated with cloud orchestration systems like OpenStack or
CloudStack.
The goal of this work is to enable FreeBSD as a fully supported compute
host for OpenStack using OpenContrail virtualized networking. The main
areas of development are:
* Libvirt hypervisor driver for bhyve.
* Support for bhyve (via libvirt compute driver) and the overall
FreeBSD platform in nova-compute.
* OpenContrail vRouter (forwarding plane kernel module) port to
FreeBSD.
* OpenContrail Agent (network controller node) port to FreeBSD.
* Integration and performance optimizations.
Since the last report the following items have been completed, which
allow for a working demo of an OpenStack compute node on a FreeBSD host
using OpenContrail for network virtualization:
* Port of the OpenContrail vRouter kernel module for FreeBSD (MPLS
over GRE mode only)
* Port of the OpenContrail Agent for FreeBSD
* FreeBSD version of a Devstack installation/configuration script
with support for the OpenContrail solution (Compute node components
only)
A demo was presented at the DevSummit during BSDCan2014 in Ottawa.
Also, a meetup regarding the subject was organized in Krakow, Poland.
Work on this project is sponsored by Juniper Networks.
__________________________________________________________________
The FreeBSD Foundation
URL: http://www.FreeBSDFoundation.org/
URL: http://freebsdjournal.com/
Contact: Deb Goodkin <deb at FreeBSDFoundation.org>
The FreeBSD Foundation is a 501(c)(3) non-profit organization dedicated
to supporting and promoting the FreeBSD Project and community
worldwide. Most of the funding is used to support FreeBSD development
projects, conferences and developer summits, purchase equipment to grow
and improve the FreeBSD infrastructure, and provide legal support for
the Project.
We published our third issue of the FreeBSD Journal. We have over 2700
subscriptions so far. We continued working on the digital edition,
which will allow subscribers to read the magazine in different web
browsers, including those than run on FreeBSD. This will be available
for the July/August issue of the Journal.
We hired Anne Dickison, on a freelance basis, as our new marketing
director, to help us promote the Foundation and Project.
The annual board meeting was held in Ottawa, Canada, in May. Directors
and officers were elected, and we did some long-term planning. We
worked on our vision, core values, project road mapping, and our
near-term goals. We also met with the core team to discuss roles and
responsibilities, project roadmapping, and what we can do to help the
Project more.
We were a Gold+ sponsor for BSDCan, May 16-17 and provided 7 travel
grants for developers to attend the conference. We also were the
sponsor for both the developer and vendor summits.
Justin Gibbs gave a FreeBSD presentation at a FreeBSD user's internal
technology summit. Company visits like this help users understand the
Project structure better and gives us a chance to communicate what
FreeBSD people are working on as well as learn what different companies
are doing with FreeBSD, as well as what they'd like to see supported.
We can then help facilitate collaboration between the companies and
FreeBSD developers.
We were represented at Great Wide Open, April 2-3 (greatwideopen.org),
Texas LinuxFest, June 13-14 (texaslinuxfest.org), and SouthEast
LinuxFest, June 20-22 (southeastlinuxfest.org).
Hardware was purchased to support an upgrade at Sentex. A new
high-capacity 1Gbps switch was deployed to allow for more systems to be
added to the test lab. The main file server and development box was
upgraded to allow more users in the lab simultaneously.
We purchased hardware, including package builders, and a larger server
to allow NYI to be a full replica of all Project systems, comparable to
what is in place at Yahoo Inc. and ISC.
We worked with our lawyer to create an NDA between the Foundation and
individuals for third party NDAs. This allows developers who need
access to proprietary documents, to go through the Foundation, via an
NDA for access.
FreeBSD Foundation Systems Administrator and Release Engineer, Glen
Barber, continued work on producing regularly-updated FreeBSD/arm
snapshots for embedded devices, such as the Raspberry Pi, ZedBoard, and
BeagleBone.
In addition to producing weekly development snapshots from the head/
and stable/ branches, with feedback and help from Ed Maste, Glen
finished work to produce release images that will, by default, provide
debugging files for userland and kernel available on the
FreeBSD Project FTP mirrors. Note that the debugging files will not be
included on the bootonly.iso, disc1.iso, or dvd1.iso images due to the
size of the resulting images.
Foundation staff member Konstantin Belousov completed an investigation
into poor performance of PostgreSQL on FreeBSD. This uncovered
scalability problems in the FreeBSD kernel, and changes to address
these issues are in progress.
Some previously completed Foundation-sponsored projects received
enhancements or additional work. The ARM superpages project was
completed last year, but is now enabled by default in FreeBSD-CURRENT.
Many stability fixes and enhancements have been committed to the
in-kernel iSCSI stack. The iSCSI project was released in FreeBSD 10.0.
Many stability fixes and enhancements have been committed and will be
included in FreeBSD 10.1.
Work continues on the Foundation-sponsored autofs automount daemon,
UEFI boot support, the updated vt(4) system video console, virtual
machine images, and the Intel graphics driver update.
Foundation-sponsored work resulted in 226 commits to FreeBSD over the
April to June period.
__________________________________________________________________
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJT0VGRAAoJELls3eqvi17QF0UP/iPhYcVNJ2WUJS3rZ9MPCPHj
EfN3DLsOMCO54YWEIUnQqZTR0ist9HjUaSbyLfTIM9j4xmwvz2Z6JWiMvg8Ui8QC
6EuLjLOKvlwaj4F9/OMu5mrOpYeXtwZOS5KgeYN+yq9sBXV3mzMe8yhzIT6zTGNM
akRhbVqJiQRKnwF4T15PML/AJ9ihrfYqz3j3veocelWDyuEG2LOpJQj1zfUXX2f8
YdCDSi/6bNmNoh95Nf7+F7Uj+R7EvYHZ5SdvO9eUk/ET/J4x/JAXcxwms/ars2wX
LsJjVZS9vLVCvb82HADb6tWAUCi02hHy0vUxxKj2E9u113Nq2Ecws2kSdnaIEfJp
jFUE3y5/VWnCKOGXgF3T4iB20M+i/nqOQStnY33fq5Dr36LlHvVpLNCF9XjRs+IN
p6O8aDOnl8etil+Z2w6IWeth/D6la8a2+4xEP3/l/d9VHParchoKUcA44RFM/k8D
MNz/+fQurkaLZXEQUlr9oB/QRuZ6t54pT/rD1Nu40/kvnoS+Ss8JdN1VzcdBe5b1
hehkxxZ1/GmxSp2YcdeQVfK86YE+323izsa4fBjvx/6z+Zo3C2dIV2mgBuoz1mQd
U5G/a1DOcVHGqBO7xUVlgwEr1c2pTARmRBEU5rkehibqkznG5QFfj83k3j3Mvx0N
P9kkcHSgEgy40srydzLq
=3eLh
-----END PGP SIGNATURE-----