Wednesday, July 30, 2014

Foundation is Accepting Travel Grant Applications for EuroBSDCon 2014

Calling all FreeBSD developers needing assistance with travel expenses to EuroBSDCon 2014.

The FreeBSD Foundation will be providing a limited number of travel grants to individuals requesting assistance. Please fill out and submit  the Travel Grant Request Application at http://www.freebsdfoundation.org/documents/TravelRequestForm.pdf by August 15th, 2014 to apply for this grant.

This program is open to FreeBSD developers of all sorts (kernel hackers,  documentation authors, bugbusters, system administrators, etc).  In some cases we are also able to fund non-developers, such as active community members and FreeBSD advocates.

If you are a speaker at the conference, we expect the conference to cover your travel costs, and will most likely not approve your direct request to us.

There's some flexibility in the mechanism, so talk to us if something about the model doesn't quite work for you or if you have any questions. The travel grant program is one of the most effective ways we can spend money to help support the FreeBSD Project, as it helps developers get together in the same place at the same time, and helps advertise and advocate FreeBSD in the larger community.

Tuesday, July 15, 2014

FreeBSD 9.3-RELEASE Now Available

FreeBSD 9.3-RELEASE Announcement

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 9.3-RELEASE. This is the fourth release of the stable/9 branch, which improves on the stability of FreeBSD 9.2-RELEASE and introduces some new features.

Some of the highlights:
  • The zfs(8) filesystem has been updated to support the bookmarks feature.
  • The uname(1) utility has been updated to include the -U and -K flags, which print the __FreeBSD_version for the running userland and kernel, respectively.
  • The fetch(3) library has been updated to support SNI (Server Name Identification), allowing to use virtual hosts on HTTPS.
  • Several updates to gcc(1) have been imported from Google.
  • The hastctl(8) utility has been updated to output the current queue sizes.
  • The protect(1) command has been added, which allows exempting processes from being killed when swap is exhausted.
  • The etcupdate(8) utility, a tool for managing updates to files in /etc, has been merged from head/.
  • A new shared library directory, /usr/lib/private, has been added for internal-use shared libraries.
  • OpenPAM has been updated to Nummularia (20130907).
  • A new flag, "onifconsole" has been added to /etc/ttys. This allows the system to provide a login prompt via serial console if the device is an active kernel console, otherwise it is equivalent to off.
  • Sendmail has been updated to version 8.14.9.
  • BIND has been updated to version 9.9.5.
  • The xz(1) utility has been updated to a post-5.0.5 snapshot.
  • OpenSSH has been updated to version 6.6p1.
  • OpenSSL has been updated to version 0.9.8za.
For a complete list of new features and known problems, please see the online release notes and errata list, available at:
For more information about FreeBSD release engineering activities, please see:

Availability

FreeBSD 9.3-RELEASE is now available for the amd64, i386, ia64, powerpc, powerpc64, and sparc64 architectures.

FreeBSD 9.3-RELEASE can be installed from bootable ISO images or over the network. Some architectures also support installing from a USB memory stick. The required files can be downloaded via FTP as described in the section below. While some of the smaller FTP mirrors may not carry all architectures, they will all generally contain the more common ones such as amd64 and i386.

SHA256 and MD5 hashes for the release ISO and memory stick images are included at the bottom of this message.  A PGP-signed version of this announcement is available at:
Please refer to the official announcement email for the full details regarding FreeBSD 9.3-RELEASE.

Acknowledgments

Many companies donated equipment, network access, or man-hours to support the release engineering activities for FreeBSD 9.3 including The FreeBSD Foundation, Yahoo!, NetApp, Internet Systems Consortium, ByteMark Hosting, Sentex Communications, New York Internet, Juniper Networks, NLNet Labs, iXsystems, and Yandex.

The release engineering team for 9.3-RELEASE includes:
Glen Barber <gjb@FreeBSD.org> Release Engineering Lead, 9.3-RELEASE Release Engineer
Konstantin Belousov <kib@FreeBSD.org> Release Engineering
Joel Dahl <joel@FreeBSD.org> Release Engineering
Baptiste Daroussin <bapt@FreeBSD.org> Package Building
Bryan Drewery <bdrewery@FreeBSD.org> Package Building
Marc Fonvieille <blackend@FreeBSD.org> Release Engineering, Documentation
Steven Kreuzer <skreuzer@FreeBSD.org> Release Engineering
Xin Li <delphij@FreeBSD.org> Release Engineering, Security Officer
Josh Paetzel <jpaetzel@FreeBSD.org> Release Engineering
Colin Percival <cperciva@FreeBSD.org> Security Officer Emeritus
Craig Rodrigues <rodrigc@FreeBSD.org> Release Engineering
Hiroki Sato <hrs@FreeBSD.org> Release Engineering, Documentation
Gleb Smirnoff <glebius@FreeBSD.org> Release Engineering
Ken Smith <kensmith@FreeBSD.org> Release Engineering
Dag-Erling Sm√łgrav <des@FreeBSD.org> Security Officer
Marius Strobl <marius@FreeBSD.org> Release Engineering
Robert Watson <rwatson@FreeBSD.org> Release Engineering, Security

Trademark

FreeBSD is a registered trademark of The FreeBSD Foundation.

Love FreeBSD? Support this and future releases with a donation to The FreeBSD Foundation!

Sunday, July 6, 2014

FreeBSD 9.3-RC3 Now Available

FreeBSD 9.3-RC3 Now Available


The third RC build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/9.3" branch.


A list of changes since 9.2-RELEASE are available on the 9.3-RELEASE release notes page here:


Changes between 9.3-RC2 and 9.3-RC3 include:

  • Bug fix for axge(4) range checks and receive loop header parsing.
  • Bug fix to exclude loopback addresses rather than loopback interfaces has been fixed.
  • Bug fix in uhso(4) to prevent memory use after free() and mtx_destroy().
  • Bug fix in bsdinstall(8) where certain conditions could prevent directory creation before use.
  • Bug fix for DNS-based load balancing.
  • Vendor update to oce(4).

The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-RC3

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

Saturday, June 28, 2014

FreeBSD 9.3-RC2 Now Available

FreeBSD 9.3-RC2 Now Available


The second RC build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/9.3" branch.


A list of changes since 9.2-RELEASE are available on the 9.3-RELEASE release notes page here:


Changes between 9.3-RC1 and 9.3-RC2 include:
  • A bug in the fast rx buffer recycle path has been fixed in the cxgbe(4) driver.
  • A bug that would incorrectly allow two listening SCTP sockets on the same port bound to the wildcard address has been fixed.
  • Multiple vulnerabilities have been fixed in file(1) and libmagic(3).  [FreeBSD-SA-14:16.file]
  • A workaround has been implemented to fix serial ports on certain motherboards, in particular the Intel D2500CCE board.
  • A bug in bsdgrep(1) that would prevent certain pattern matching has been fixed.
  • The bsdconfig(8) utility has been updated to support pkg(8)-format packages.
  • Firmware for the cxgbe(4) Chelsio T4 and T5 cards has been updated to version 1.11.27.0.
The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-RC2

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

Saturday, June 21, 2014

FreeBSD 9.3-RC1 Now Available

FreeBSD 9.3-RC1 Now Available

The first RC build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/9.3" branch.


A list of changes since 9.2-RELEASE are available on the stable/9 release notes page here:


Changes between 9.3-BETA3 and 9.3-RC1 include:
  • Various bug fixes in the hptrr(4) driver.
  • Time zone data has been updated to tzdata2014e.
  • Handling of the '-P' flag without '-p' or '-r' has been fixed in the daemon(8) utility.
  • A bug in the nvme(4) controller initialization path has been fixed.
  • A bug in the fast receive buffer recycle path has been fixed in the cxgbe(4) driver.
The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-RC1

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

Saturday, June 14, 2014

FreeBSD 9.3-BETA3 Now Available

FreeBSD 9.3-BETA3 Now Available


The third BETA build of the 9.3-RELEASE release cycle is now available on the FTP servers for the amd64, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

The image checksums can be found in the PGP-signed announcement email.

ISO images and, for architectures that support it, the memory stick images are available here:

    http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/9.3/

(or any of the FreeBSD mirror sites).

If you notice problems you can report them through the normal GNATS PR system or on the -stable mailing list.

Please note, as the FreeBSD bug tracking system is undergoing maintenance, the PR system may be unavailable.  Problem reports submitted this maintenance period are being queued for later processing.

If you would like to use SVN to do a source based update of an existing system, use the "stable/9" branch.


A list of changes since 9.2-RELEASE are available on the stable/9 release notes page here:


Changes between 9.3-BETA2 and 9.3-BETA3 include:
  • A new ttys(5) flag, onifconsole, has been added, which activates ttyu0 if the device is an active kernel console.
  • The NFSv4 server now allows creating a hard link to a symbolic link, as was allowed in NFSv3.
  • OpenSSL has been updated to 0.9.8za.
  • A deadlock caused by incorrect reference counts has been fixed in the usb(4) driver.
  • The arc4random(3) library has been updated to match that in FreeBSD-CURRENT.
  • The amount of data collected by hwpmc(4) has been increased to work with modern processors and available RAM.
  • A new pmcstat(8) flag, '-l', has been added, which ends event collection after the specified number of seconds.
The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 9.3-BETA3

During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.

    # freebsd-update install

The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install

It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example, FreeBSD 8.x.  Alternatively, the misc/compat8x port can be installed to provide other compatibility libraries, afterwards the system must be rebooted into the new userland:

    # shutdown -r now

Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!

Tuesday, June 10, 2014

BSDCan Trip Report: Li-Wen Hsu

The next trip report is from Li-Wen Hsu:

I am very excited for having the chance to join the most important and largest annual BSD conference. Thanks to the FreeBSD Foundation, it's my first year to attend BSDCan. The main motivation for attending is that I'm in part of the project started by Craig Rodrigues, Jenkins CI for FreeBSD, and and I am honored to be invited join that group.
 

I arrived in Ottawa on May 13th. After checking into Residence and taking a short nap to ease jet-lag, I went to the Royal Oak Pub to join the pre-party of the developers. Sean Bruno quickly recognized me and introduced me to other developers. I talked with Steve Wills, Mark Linimon, Gavin Atkinson, and met Peter Wemm, my roommate.
 

The first day of the Developer Summit started with presentations about changes to the support plan and brainstorming about FreeBSD 11. During the break, I spoke to Mark Johnston, who completed the last piece of axge(4), our first USB 3.0 to gigabit ethernet adapter driver. It is written mainly by Kevin Lo and I provided some fixes in rx/tx routines. During our chat, we discussed the performance issues of axge(4) where he discovered there might be a limitation of calling rx/tx routines numbers per second in the USB stack. This is done by just a few lines of DTrace code. I was totally shocked by that and decided that I should learn more about it.
 

In the afternoon, I joined The Java working group where Greg Lewis introduced the history, current status, and we discussed the future plans of the Java port. We talked about how to improve user experience, support for important Java software, and the known problems of Java on FreeBSD. There was also a discussion on how to to get more developers who want to develop Java applications on FreeBSD. We think that DTrace support might be attractive for people who run Java on FreeBSD.

We had Thai food in the Hacker Lounge for dinner. George V. Neville-Neil and I talked about how to make more people develop or support their software on FreeBSD. I showed him Travis CI which is used by many open source projects developed on GitHub for their continuous integration needs. However, it cannot support FreeBSD in the near future. Being a ports committer for several years, I feel that many projects are willing to support FreeBSD, but lack the environment and experience. I think we should work more with external communities to address this. We discussed the possibility of establishing such a service for FreeBSD, following the successful model of RedPorts. There are many tricky parts and security issues to consider. Furthermore, the most important part is manpower. If any reader is interested in helping, please contact me.
 

On the second day of the Developer Summit, I went to the Continuous Integration and Testing with Jenkins for FreeBSD working group in the morning. In the first part of the meeting, Craig introduced Jenkins and how it is utilized in the FreeBSD.org cluster. He also covered the internal architecture of jenkins.FreeBSD.org. In the second part of the meeting, we discussed the next steps to work on this year. Craig and I helped Julio Merino set up a Jenkins instance on his laptop and Julio quickly hacked Kyua to let it generate JUnit output which can be parsed by Jenkins. This is very exciting to us because it means that we can have a trackable and easy-to-read continuous integration report. We believe this can help developers and contributors to produce higher quality code and to find items they can start to work on.
 

In the afternoon, I joined the Documentation Translation System Session where Benedict Reuschling introduced a process to translate documentation just like using gettext for software i18n and l10n. This process is done by translating docbook XML files to .po files with po4a, then translators can use their favorite po file editor to concentrate on the content instead of struggling with non-human readable XML files. It is also possible to establish a "translation memory" to remember the phrases and sentences that have already been translated for sharing between documents, which reduces duplicated work from translators. We also talked about a wish: one web-based system where casual translators can fix a translation by clicking a mouse while the backend takes care of the rest. The doc committers or another contributor can commit the change back to the doc repository.
 

Finally, I asked about continuous integration for the doc tree. Warren Block suggested that we can run igor for checking the errors, however there are some false positives that would bother people. During BSDCan, I joined two of the Doc Sprints. One night I asked Warren about "safe parameters" for igor and I quickly hacked igor to generate the checkstyle format XML output and pass it to the Jenkins checkstyle plugin. I presented the proof of concept on the second night. It is really great that people thought it is useful and encouraged me to setup it as a job on jenkins.FreeBSD.org. Warren will help me with this. In the future, this could also integrate with Phabricator as a "lint" tool for being as a filter.
 

I always wanted to revive the Traditional Chinese Document Translation Project. Fortunately, about two weeks after BSDCan, a volunteer sent a mail to the freebsd-doc mailing list stating that he wants to contribute to the Traditional Chinese translation of the FreeBSD Handbook. After discussing with him and with the help from people on EFNet/#bsddocs and doceng, I converted zh_TW from Big5 to UTF-8 in the doc tree for making future translation easier. This is really a good restart and I hope more people can join and we can have a complete Traditional Chinese handbook and other documents soon.
 

The following two days were the BSDCan sessions. The starting keynote speaker was Karl Lehenbauer from FlightAware. The most rememberable might be the slide "A billion dollars + Linus <= good people with a rigorous engineering process doing BSD." Also, there are some slides about FreeBSD tuning at FlightAware.
 

In Luigi Rizzo's talk In-kernel OpenvSwitch on FreeBSD, I learned a lot about how to port the Linux kernel subsystem to FreeBSD. In his work, he provides netlink sockets for the FreeBSD kernel. This is very good news because I always heard that people who are familiar with Linux want this feature.
 

Patrick Kelsey gave the libuinet talk. This is used to port the FreeBSD TCP/IP stack to userland. It means that the resource needed for a connection is in userspace memory and the kernel only needs to provide a packet interface, such as netmap. This is useful for an application that handles lots of concurrent connections. Patrick became a committer recently and I hope more work from him can bring libuinet closer to HEAD soon.
 

Pawel Jakub Dawidek and Mariusz Zaborski talked about their work on Capsicum and Casper. In this talk, they presented the lack of traditional security mechanism (setuid(2), chroot(2), P_SUGID, setrlimit(2)) provided by the system, and how an easier protection is provided by Capsicum. The Casper daemon provides services to sandboxed processess which do not have the necessary rights.
 

The FreeBSD Developer Summit and BSDCan overlap for one day. May 16 is the public track of the dev summit and I attended two sessions. Michal Dubiel from Semihalf gave the status update of OpenStack and OpenContrail on a FreeBSD host. I am glad that there are companies which invest in cloud technologies for FreeBSD. I hope this can be in production soon and maybe the FreeBSD cluster can have some setup to enrich developer resources. Another session I attended is lightweight reference counting, by Gleb Smirnoff. Using counter(9) in FreeBSD 10 as a reference count is really a brilliant idea. I am looking forward to seeing performance improve with this solution.
 

Arun Thomas gave a good tutorial of ARM and how BSD supports it. For a person like myself with no experience in embedded systems, it was a good start. Now I can have more fun with my Raspberry Pi.
 

Julio Merino talked about The FreeBSD Test Suite, which is really important to me and the FreeBSD continuous integration group. He also announced the plan to combine Kyua and Jenkins in the session. He hopes that the tests can be more complete and the CI pipeline can be more mature. There are still lots of things to be done!
 

Matt Ahrens presented the goals of the OpenZFS project and its current status. With this project, platforms like Illumos, FreeBSD, Linux, and OS X can directly interact with a shared, platform-independent ZFS code base. This will greatly reduce the effort to port changes between platforms and the tests can also be shared. The future of the OpenZFS features are amazing, including resumable zfs send/recv and device removal, which can make a system administrator's€™ life much easier.
 

The ASLR talk by Shawn Webb was awesome and this is definitely a feature that a paranoid person like myself  hope will be merged to the main trunk soon. It seems to still have problems on ARM so he also asked for help from people with ARM experience.
 

On return home, I was surprised that Peter and I were on the same flight and sat next to each other. We talked about Linux containers and the projects that use it like Docker, which is the part that FreeBSD is not doing well. Currently, the resource limitation of the lightweight containers is not really complete. He said that the way we using servers, or the "computing nodes", are changing in lightspeed and we should not be left behind. We both agree that a modern operating system should put more effort in cloud and mobile solutions.
 

I would like to thank the FreeBSD Foundation again for sponsoring me to attend this great event. I made new friends and met people who only know each other on the Internet before. We shared many good ideas and it is really awesome to know there are so many people working on FreeBSD. I hope I can participate again next year!