diff --git a/website/content/en/releases/13.0R/relnotes.adoc b/website/content/en/releases/13.0R/relnotes.adoc index 315a833749..046186e239 100644 --- a/website/content/en/releases/13.0R/relnotes.adoc +++ b/website/content/en/releases/13.0R/relnotes.adoc @@ -1,729 +1,728 @@ --- title: "FreeBSD 13.0-RELEASE Release Notes" sidenav: download --- :releaseCurrent: 13.0-RELEASE :releaseBranch: 13-STABLE :releasePrev: 12.2-RELEASE :releaseNext: 13.1-RELEASE :releaseType: release include::shared/en/urls.adoc[] = FreeBSD {releaseCurrent} Release Notes :doctype: article :toc: macro :toclevels: 1 :icons: font == Abstract [.abstract-title] The release notes for FreeBSD {releaseCurrent} contain a summary of the changes made to the FreeBSD base system on the {releaseBranch} development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the FreeBSD kernel and userland. Some brief remarks on upgrading are also presented. [[intro]] == Introduction This document contains the release notes for FreeBSD {releaseCurrent}. It describes recently added, changed, or deleted features of FreeBSD. It also provides some notes on upgrading from previous versions of FreeBSD. The {releaseType} distribution to which these release notes apply represents the latest point along the {releaseBranch} development branch since {releaseBranch} was created. Information regarding pre-built, binary {releaseType} distributions along this branch can be found at https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]. The {releaseType} distribution to which these release notes apply represents a point along the {releaseBranch} development branch between {releasePrev} and the future {releaseNext}. Information regarding pre-built, binary {releaseType} distributions along this branch can be found at https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/]. This distribution of FreeBSD {releaseCurrent} is a {releaseType} distribution. It can be found at https://www.FreeBSD.org/releases/[https://www.FreeBSD.org/releases/] or any of its mirrors. More information on obtaining this (or other) {releaseType} distributions of FreeBSD can be found in the link:{handbook}mirrors[Obtaining FreeBSD appendix] to the link:{handbook}[FreeBSD Handbook]. All users are encouraged to consult the release errata before installing FreeBSD. The errata document is updated with "late-breaking" information discovered late in the release cycle or after the release. Typically, it contains information on known bugs, security advisories, and corrections to documentation. An up-to-date copy of the errata for FreeBSD {releaseCurrent} can be found on the FreeBSD Web site. This document describes the most user-visible new or changed features in FreeBSD since {releasePrev}. In general, changes described here are unique to the {releaseBranch} branch unless specifically marked as MERGED features. Typical release note items document recent security advisories issued after {releasePrev}, new drivers or hardware support, new commands or options, major bug fixes, or contributed software upgrades. They may also list changes to major ports/packages or release engineering practices. Clearly the release notes cannot list every single change made to FreeBSD between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements. [[upgrade]] == Upgrading from Previous Releases of FreeBSD Binary upgrades between RELEASE versions (and snapshots of the various security branches) are supported using the man:freebsd-update[8] utility. The binary upgrade procedure will update unmodified userland utilities, as well as unmodified GENERIC kernels distributed as a part of an official FreeBSD release. The man:freebsd-update[8] utility requires that the host being upgraded have Internet connectivity. Source-based upgrades (those based on recompiling the FreeBSD base system from source code) from previous versions are supported, according to the instructions in [.filename]#/usr/src/UPDATING#. Upgrading powerpc64 systems from earlier FreeBSD Releases is NOT supported. Users need to reinstall, due to using new ABI. [IMPORTANT] ==== Upgrading FreeBSD should only be attempted after backing up _all_ data and configuration files. ==== [IMPORTANT] ==== Updating UEFI ESP partitions (the partition the firmware boots from) has changed. See <> for important details. ==== [[security-errata]] == Security and Errata This section lists the various Security Advisories and Errata Notices since {releasePrev}. [[security]] === Security Advisories [.informaltable] [cols="1,1,1", frame="none", options="header"] |=== | Advisory | Date | Topic |No advisories. | | |=== [[errata]] === Errata Notices [.informaltable] [cols="1,1,1", frame="none", options="header"] |=== | Errata | Date | Topic |No notices. | | |=== // Sample release notes entry. //The man:fsck_msdosfs[8] utility includes a variety of enhancements, including reducing the memory footprint, a new flag, `-M`, which disables the use of man:mmap[2], and others. gitref:9708ba9f29[repository=src] [[userland]] == Userland This section covers changes and additions to userland applications, contributed software, and system utilities. [[userland-config]] === Userland Configuration Changes man:rc.subr[8] now honors `${name}_env` in all man:rc[8] scripts. Previously, environment variables set by a user via `${name}_env` were ignored if the service defined a custom `*_cmd` variable to control the behavior of the `run_rc_command` function, for example, `start_cmd`, instead of relying on variables like `command` and `command_args`. gitref:d15e810db9a5[repository=src] man:init[8], man:service[8], and man:cron[8] will now adopt user/class environment variables by default (excluding `PATH`). Notably, environment variables for all cron jobs and man:rc[8] services can now be set via man:login.conf[5]. gitref:21c1a93c048f[repository=src], gitref:736a5a6d1dbb[repository=src], gitref:7466dbd68487[repository=src] The default config for man:newsyslog[8] will now only include files from the /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ directories if the filename ends with ".conf" and does not begin with a "." character. This matches the man:syslog.conf[5] functionality, and also prevents ".sample" or ".pkgnew" files being included. gitref:9165316ff6bf[repository=src] The kernel now supports enforcing a W^X memory mapping policy for user processes. The policy is not enforced by default but can be enabled by setting the `kern.elf32.allow_wx` and `kern.elf64.allow_wx` sysctls to 0. Individual binaries can be exempted from the policy by man:elfctl[1] via the `wxneeded` feature. gitref:2e1c94aa1fd5[repository=src] {{< sponsored "The FreeBSD Foundation" >}} [[userland-programs]] === Userland Application Changes The man:calendar[1] utility again supports nested C pre-processor conditionals and now supports the C++ comment syntax in addition to the C syntax. gitref:19b5c307548[repository=src] The man:calendar[1] utility consistently prints dates according to the locale of the invoking user, not the possibly varying locales of included files. gitref:f1560bd080a[repository=src] The man:calendar[1] utility uses the correct paths for included files if invoked with the -a option. gitref:19b5c307548[repository=src] The man:calendar[1] utility no longer installs data files other than calendar.freebsd. The data files are now provided by the deskutils/calendar-data port. gitref:d20d6550187[repository=src] The man:daemon[8] utility now supports the `-H` flag to close and re-open the output file when SIGHUP is received. This permits rotation of the output file via man:newsyslog[8]. gitref:4cd407ec933[repository=src] The man:daemon[8] utility no longer blocks SIGTERM during the restart delay. gitref:09a3675d961[repository=src] The man:devd[8] utility now reports a `kernel` system event when the system resumes from sleep rather than a `kern` system event. gitref:f87655ec7694[repository=src] The man:diskinfo[8] utility now reports the physical device name GEOM attribute when available. gitref:b5961be1ab7[repository=src] Removed userland support for FreeBSD/i386 a.out executables. gitref:9bc6c7219a37[repository=src], gitref:50a40d091170[repository=src], gitref:0713c7b88cf0[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Removed the man:elf2aout[1] utility. gitref:dd99ab06f360[repository=src] The man:freebsd-update[8] utility now displays progress for the "Fetching files..." stage. gitref:d6e1e31a0e6[repository=src] The man:freebsd-update[8] utility now supports the `-p` flag, which ensures password db changes are included in [.filename]#/etc/passwd# via man:pwd_mkdb[8]. gitref:9b6591109e8[repository=src] {{< sponsored "The FreeBSD Foundation" >}} The man:freebsd-update[8] utility now supports the `updatesready` and `showconfig` commands to check for updates and check the configuration respectively. gitref:8cfda118cbd[repository=src] The manual page for the man:freebsd-update[8] utility documents using the `PAGER` environment variable for non-interactive use. gitref:32f4592764d[repository=src] Removed the obsolete version of the GNU debugger that was installed to [.filename]#/usr/libexec# for use by man:crashinfo[8]. Detailed kernel crash information can be obtained by installing modern GDB from ports or packages. gitref:1c0ea326aa6d[repository=src] Removed the obsolete binutils 2.17 and man:gcc[1] 4.2.1 from the tree. All supported architectures now use the LLVM/clang toolchain. gitref:0ad202f312f6[repository=src], gitref:a04ec978b369[repository=src], gitref:57f804675e65[repository=src], gitref:90b9aa475e9e[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Removed the GPL-licensed version of man:dtc[1]. The BSD-licensed version is now built and installed unconditionally. gitref:134b378392a8[repository=src] {{< sponsored "The FreeBSD Foundation" >}} The manual page for the man:gstat[8] utility now documents the use of interactive keyboard commands. gitref:cfaa2958dc4[repository=src] The manual page for the man:inetd[8] utility now includes an example of how to use netcat as an HTTP proxy. gitref:a58fc861516[repository=src] The manual page for the man:inetd[8] utility now includes comments for all examples. gitref:26a4a61a285[repository=src] Removed the man:ctm[1] utility. It is now provided by the `misc/ctm` port. gitref:385e98080cab[repository=src] The BSD version of man:grep[1] is now installed by default. The obsolete GNU version that was the previous default has been removed. gitref:8aff76fb37b5[repository=src], gitref:47d1ad2413da[repository=src] Removed the man:amd[8] automount daemon. Its functionality is provided by man:autofs[5]. gitref:13f7dbe822d5[repository=src] {{< sponsored "The FreeBSD Foundation" >}} [[userland-contrib]] === Contributed Software Replaced the man:bc[1] and man:dc[1] utilities with the version developed by Gavin D. Howard. The new versions do not depend on an external large number library, offer GNU bc extensions, are much faster than and fix POSIX compliance issues of the programs they replace. They support POSIX message catalogs and come with localized messages in Chinese, Dutch, English, French, German, Japanese, Polish, Portugueze, and Russian. The previous implementation is still available in FreeBSD-13 and can be selected instead of the new one by the build option `WITHOUT_GH_BC`. gitref:c41fef90a7d[repository=src] The clang, lld, and lldb utilities and compiler-rt, llvm, libunwind, and libc++ libraries have been updated to version 11.0.1. gitref:39b7445e15cd[repository=src] [[userland-deprecated-programs]] === Deprecated Applications [[userland-libraries]] === Runtime Libraries and API The new man:getlocalbase[3] function in libutil retrieves the LOCALBASE path in a standard way. gitref:30d21d27953[repository=src] -Removed the man:cap_random[3] function as it has been -superseeded by man:getrandom[2]. gitref:a76f78dc3f43[repository=src] +Removed the man:cap_random[3] function as it has been superseded by man:getrandom[2]. gitref:a76f78dc3f43[repository=src] A new Linux-compatible man:copy_file_range[2] system call supports efficient file copies. In particular, this system call permits the kernel to request that an NFSv4.2 server perform a copy operation locally on the server. gitref:bbbbeca3e9a3[repository=src] The man:regex[3] function no longer accepts redundant escapes for most ordinary characters. This will cause applications such as man:sed[1] and man:grep[1] to reject regular expressions using these escapes. gitref:adeebf4cd47c[repository=src] New man:aio_readv[2] and man:aio_writev[2] system calls provide vectored analogues of man:aio_read[2] and man:aio_write[2]. gitref:022ca2fc7fe0[repository=src] powerpc64 switched to ELFv2 ABI at the same time it switched to LLVM. This brings us to a parity with modern Linux distributions. This also makes the binaries from previous FreeBSD versions incompatible with 13.0-RELEASE. Kernel still supports ELFv1, so jails and chroots using older FreeBSD versions are still compatible. gitref:e4399d169acc[repository=src] Removed CU-SeeMe support from man:libalias[3]. gitref:65a1d63665b[repository=src] [[kernel]] == Kernel This section covers changes to kernel configurations, system tuning, and system control parameters that are not otherwise categorized. [[kernel-general]] === General Kernel Changes Processes that attach to a man:jail[8] will now completely rebase their man:cpuset[1] onto the jail's cpuset. Notably, if a process had been assigned a numbered cpuset then it will be assigned a new numbered set that is the combination of CPUs allowed to the attaching process and the jail. Processes belonging to the superuser will implicitly widen their CPU mask as needed if they share no CPUs in common with the jail. Overhauled the in-kernel cryptographic framework to better support modern cryptographic algorithms as well as simplify the interface for both device drivers and framework consumers. gitref:c03414326909[repository=src] {{< sponsored "Chelsio Communications" >}} man:geli[8] now reports the use of accelerated software cryptography (such as AES-NI on x86 CPUs) as "accelerated software" rather than "hardware". This is purely a change in naming, and does not imply reduced performance or support. gitref:a3d565a1188f[repository=src] {{< sponsored "Chelsio Communications" >}} Removed support for Kerberos GSS algorithms deprecated by RFCs 6649 and 8429. gitref:dee3aa83d1b6[repository=src] {{< sponsored "Chelsio Communications" >}} Removed support for previously-deprecated algorithms in man:geli[8]. gitref:e2b9919398c3[repository=src] {{< sponsored "Chelsio Communications" >}} Removed support for IPsec algorithms deprecated by RFC 8221 as well as Triple DES. gitref:16aabb761c0a[repository=src] {{< sponsored "Chelsio Communications" >}} Removed support for previously-deprecated cryptographic algorithms from man:cryptodev[4] and the in-kernel cryptographic framework. gitref:6c80c319ef88[repository=src] {{< sponsored "Chelsio Communications" >}} Refactored the amd64 DMAR driver to provide a generic I/O MMU framework which can be used by other architectures. As part of this, renamed the amd64-specific `ACPI_DMAR` kernel option to `IOMMU`. gitref:6186bfbd1880[repository=src] {{< sponsored "DARPA" >}} {{< sponsored "AFRL" >}} Added a driver for the Arm System Memory Management Unit version 3.2 to the aarch64 architecture. The driver is enabled by the `IOMMU` kernel option. gitref:4cc8701067e1[repository=src] {{< sponsored "DARPA" >}} {{< sponsored "AFRL" >}} {{< sponsored "Innovate UK" >}} The GENERIC kernels for amd64 and i386 now include man:aesni[4] to support accelerated software cryptography for man:geli[8] by default. gitref:074a91f746bd[repository=src] The GENERIC kernel for aarch64 now includes man:armv8crypto[4] to support accelerated software cryptography for man:geli[8] by default. gitref:074a91f746bd[repository=src] Added Safe Memory Reclamation (SMR) to the kernel, a light weight variant of epoch reclamation closely coupled to man:uma[9]. This has been applied in parts of the VM subsystem and VFS layer to improve scalability on high core count systems. gitref:d4665eaa6638[repository=src] Removed support for procfs-based process debugging. gitref:59838c1a197[repository=src] Added the man:netgdb[4] facility, allowing the man:gdb[4] kernel debugger to be used over the network. gitref:dda17b3672f2[repository=src] Added the man:backlight[9] subsystem. gitref:675aae732d3[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Added a CAM-Newbus SDIO support module. gitref:67ca7330cf3[repository=src] {{< sponsored "The FreeBSD Foundation" >}} [[drivers]] == Devices and Drivers This section covers changes and additions to devices and device drivers since {releasePrev}. [[drivers-device]] === Device Drivers Removed several network drivers for obsolete Ethernet adapters: * man:bm[4] BMAC gitref:9e774e53407b[repository=src] * man:cs[4] Crystal Semiconductor CS8900/CS8920 gitref:e1edf1240b33[repository=src] * man:de[4] DEC DC21x4x gitref:08ac01a92c88[repository=src] * man:ed[4] NE-2000 and WD-80x3 gitref:05aa6e583be3[repository=src] * man:ep[4] 3Com Etherlink III (3c5x9) ISA gitref:e153ee663af1[repository=src] * man:ex[4] Intel EtherExpress Pro/10 and Pro/10+ gitref:3ee01a13855b[repository=src] * man:fe[4] Fujitsu MB86960A/MB86965A gitref:dd262716a1e0[repository=src] * man:hme[4] Sun Microelectronics STP2002-STQ gitref:9ee99cec1f36[repository=src] * man:pcn[4] AMD PCnet gitref:607790d10fdb[repository=src] * man:sf[4] Starfire gitref:3b70dd81f56f[repository=src] * man:sn[4] SMC 91Cxx gitref:90089841deba[repository=src] * man:tl[4] Texas Instruments ThunderLAN gitref:7c897ca91fe1[repository=src] * man:tx[4] SMC 83c17x gitref:b1b1c2fe385c[repository=src] * man:txp[4] 3Com 3XP Typhoon/Sidewinder (3CR990) gitref:be345ff023d9[repository=src] * man:vx[4] 3Com EtherLink III / Fast EtherLink III (3c59x) PCI gitref:e8504bf9e7a0[repository=src] * man:wb[4] Winbond W89C840F gitref:02fae06a11b4[repository=src] * man:xe[4] Xircom PCMCIA gitref:7a582e5374c8[repository=src] The man:qat[4] driver has been added, supporting some of the cryptographic acceleration functions of the Intel QuickAssist (QAT) device. The man:qat[4] driver supports the QAT devices integrated with Atom C2000 and C3000 and Xeon C620 and D-1500 platforms, and the Intel QAT Adapter 8950. gitref:72143e89bb43[repository=src] {{< sponsored "Rubicon Communications, LLC (\"Netgate\")" >}} Removed the man:ubsec[4] driver for obsolete Broadcom BCM58xx crypto accelerators. gitref:97e251327f95[repository=src] {{< sponsored "Chelsio Communications" >}} Removed the deprecated man:ufm[4] driver for USB FM tuners. gitref:209d3fb41fe[repository=src] Removed the deprecated man:ctau[4] and man:cx[4] drivers. gitref:2733d8c96c6f[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Removed the man:vpo[4] driver for parallel port SCSI adapters. gitref:51691e26d06[repository=src] A new man:safexcel[4] driver supports cryptographic requests via the EIP-97 packet processing module found on the ESPRESSObin. gitref:b356ddf07671[repository=src] {{< sponsored "Rubicon Communications, LLC" >}} A new man:usbhid[4] driver uses drivers from the man:hid[4] framework for USB HID devices instead of man:ukbd[4], man:ums[4], and man:uhid[4]. man:usbhid[4] is enabled by adding `hw.usb.usbhid.enable=1` to [.filename]#/boot/loader.conf# and adding `usbhid` to `kld_list=""` in [.filename]#/etc/rc.conf#. gitref:b62f6dfaed3d[repository=src] The suite of VirtIO device drivers now support the VirtIO V1 spec. This improves FreeBSD's compatibility as a guest operating system with various hypervisors and emulators including the ability to run on the link:https://wiki.qemu.org/images/4/4e/Q35.pdf[Q35 chipset] under QEMU. A new man:ossl[4] driver supports optimized software cryptography on aarch64, amd64, and i386 using assembly routines from OpenSSL. gitref:ba610be90a7c[repository=src] {{< sponsored "Netflix" >}}, gitref:22bd0c9731d7[repository=src] {{< sponsored "The FreeBSD Foundation" >}} The man:armv8crypto[4] driver which supports software cryptography on ARMv8 CPUs now supports AES-XTS which is used by man:geli[8]. gitref:4979620ece98[repository=src] The man:armv8crypto[4] driver now supports AES-GCM which is used by IPsec and kernel TLS. gitref:f76393a6305b6[repository=src] {{< sponsored "Ampere Computing" >}} man:ixl[4] was ported to powerpc64. gitref:c5568ba08741[repository=src] man:mrsas[4] was ported to powerpc64. gitref:e34a057ca6eb[repository=src] man:aacraid[4] was ported to powerpc64. gitref:d8c51c6f74b6[repository=src] man:virtio[4] was ported to powerpc64. gitref:f272c8de6e47[repository=src] man:hwpmc[4] gained support for POWER8 and POWER9. gitref:68dd71825601[repository=src] man:cpld[4] driver was written for powerpc64 and powerpcspe. gitref:2a05eb9f3c4b[repository=src], gitref:ccb1ebe01caa[repository=src] The man:cgem[4] ethernet driver now supports 64-bit physical addresses. gitref:facdd1cd2045[repository=src] Added the man:axp[4] driver, supporting the 10G ethernet controller found on AMD EPYC processors. gitref:7113afc84c0[repository=src] Added support for Intel Speed Shift to man:cpufreq[4]. gitref:4577cf3744b[repository=src] Added a driver for pwm-backlight compatible devices, such as the one found on the Pinebook and Pinebook Pro. gitref:38d94a4bc75[repository=src] {{< sponsored "The FreeBSD Foundation" >}} [[storage]] == Storage This section covers changes and additions to file systems and other storage subsystems, both local and networked. [[storage-general]] === General Storage For man:iscsi[4] and man:ctld[8], support for specifying network QoS in the form of DiffServ Codepoints (DSCP) and Ethernet Priority Code Point (PCP) was added. gitref:ddf1072aac49[repository=src] {{< sponsored "NetApp" >}} The man:ctld[8] utility now supports the `-t` flag to test the validity of configuration files. gitref:7fcbecd004f[repository=src] Removed the man:nand[4] device framework and man:nandfs[5] filesystem and associated utilities. gitref:f5a95d9a0794[repository=src] Removed the `GEOM_SCHED` class and accompanying man:gsched[8] tool. gitref:86c06ff8864[repository=src] man:gnop[8] can now apply configurable delays to read and write requests to simulate a slow disk. gitref:4f80c85519d5[repository=src] The kernel now provides a default implementation for the `SEEK_DATA` and `SEEK_HOLE` man:ioctl[2]'s for filesystems which do not support sparse files. gitref:2e1b32c0e3fc[repository=src] The NFS client and server now support NFSv4.2 (RFC 7862) and Extended Attributes (RFC 8276). gitref:c057a378180e[repository=src] Attempts to read a directory fail with `EISDIR` by default. The `-d skip` flags can be passed to man:grep[1] to suppress errors in stderr when non-recursively grepping a list that includes directories. gitref:dcef4f65ae39[repository=src] The NFS server now permits credentials specified via `-maproot` or `-mapall` in man:exports[5] to include more than 16 groups. gitref:cc5efdde94bf[repository=src] The NFS client and server now support NFS over TLS. The additional userland daemons are not built by default but can be enabled by building a new world that includes a KTLS-enabled OpenSSL via the `WITH_OPENSSL_KTLS` option. gitref:6e4b6ff88fde[repository=src], gitref:2c76eebca71b[repository=src], gitref:59f6f5e23c1a[repository=src] A new `nfsv4_server_only` variable can be set to `YES` in [.filename]#/etc/rc.conf# to only enable support for NFSv4. This avoids the need to run man:rpcbind[8] on an NFS server. gitref:4389a5661034[repository=src] Updated the man:fusefs[5] protocol to 7.28 along with adding support for `FUSE_COPY_FILE_RANGE` and `FUSE_LSEEK`. gitref:92bbfe1f0d1f[repository=src] The ZFS implementation is now provided by OpenZFS. gitref:9e5787d2284e[repository=src] {{< sponsored "iXsystems" >}} Added the man:pvscsi[4] driver, supporting the para-virtualized SCSI controller in VMWare products like ESXi. gitref:052e12a5084[repository=src] {{< sponsored "VMWare" >}} {{< sponsored "Panzura" >}} [[boot]] == Boot Loader Changes This section covers the boot loader, boot menu, and other boot-related changes. The man:efibootmgr[8] utility now supports the `-b` flag to specify an index of a specific boot entry to create or modify. gitref:a2581e80212[repository=src] {{< sponsored "Netflix" >}} The man:efibootmgr[8] utility now supports the `-E` flag to query which EFI System Partition was used to boot the system. gitref:1cdb8eb8fe1[repository=src] {{< sponsored "Netflix" >}} The man:efibootmgr[8] utility now supports the `-f` and `-F` flags to set or clear a request to boot to the UEFI user interface on the next boot. gitref:83c4237258d[repository=src] {{< sponsored "Ampere Computing, Inc." >}} Prior releases had a complete MS-DOS formatted filesystem packaged into [.filename]#/boot/boot1.efifat#. Older versions of FreeBSD installed this filesystem image into a raw partition. However, uses of the ESP have proliferated, making this inflexible approach no longer desirable. Users have varied needs for the size of this partition, and multiple booting setups require more detailed access. To update old ESP partitions, users should stop using the man:gpart[8] utility. Instead, ESP partitions should be mounted as MS-DOS filesystems as [.filename]#/boot/efi#, and [.filename]#/boot/loader.efi# should be copied to [.filename]#/boot/efi/efi/boot/bootx64.efi# if the default setup is used. If the man:efibootmgr[8] utility is used to customize the boot environment, this file should be copied to the location set with the `-l` flag. [[network]] == Networking This section describes changes that affect networking in FreeBSD. [[network-general]] === General Network A new type of man:mbuf[9] (network data buffer) can represent multiple, unmapped physical pages as a single buffer. This improves the performance of man:sendfile[2] by reducing the length of mbuf linked lists in socket buffers. gitref:82334850ea45[repository=src], gitref:cec06a3edc52[repository=src] {{< sponsored "Netflix" >}} The kernel now supports in-kernel framing and encryption of Transport Layer Security (TLS) data on TCP sockets for TLS versions 1.0 through 1.3. Transmit offload via in-kernel crypto drivers is supported for MtE cipher suites using AES-CBC as well as AEAD cipher suites using AES-GCM. Receive offload via in-kernel crypto drivers is supported for AES-GCM cipher suites for TLS 1.2. Using KTLS requires the use of a KTLS-aware userland SSL library. The OpenSSL library included in the base system does not enable KTLS support by default, but support can be enabled by building with the `WITH_OPENSSL_KTLS` option. gitref:b2e60773c6b0[repository=src], gitref:6554362c6640[repository=src], gitref:f1f934754638[repository=src], gitref:3c0e56850511[repository=src], gitref:c1c52cd57e88[repository=src] {{< sponsored "Netflix" >}} {{< sponsored "Chelsio Communications" >}} man:tcp[4] now supports Proportional Rate Reduction (as described by RFC6937) to improve SACK loss recovery during burst loss and ACK thinning scenarios. This feature is enabled by default. A new man:sysctl[8], `net.inet.tcp.do_prr`, can be set to `0` to restore the prior behavior. PRR should generally help improve loss recovery performance and prevent numerous preventable retransmit timeout (RTO) stalls. This surpasses the prior behavior, but a strictly packet conserving variant can be enabled. A misconfigured token bucket traffic policer can cause persistent loss even during loss recovery. In that case, activating the conservative PRR variant may prevent some retransmission timeouts (RTO) and associated session stalls for a few milliseconds while behaving less optimal in the general case. A new man:sysctl[8], `net.inet.tcp.do_prr_conservative`, can be set to `1` to enable strictly packet conserving behavior (at most 1 segment for each ACK received), while the normal variant may send up to 2 segments per received ACK - helping in cases of ACK thinning or significant burst loss events. gitref:0e1d7c25c5ab[repository=src] {{< sponsored "NetApp" >}} The man:cc_cubic[4] man:tcp[4] congestion control algorithm aligns more closely with the standard in RFC8312. gitref:40f9078ff9d9[repository=src] {{< sponsored "NetApp" >}} The amount of queued packets in for unresolved ARP/NDP entries has been increased to 16. gitref:0da3f8c98d17d9[repository=src] Stacked VLAN (802.1ad) support has been added. gitref:c7cffd65c5d8[repository=src]. The man:ping[8] utility now supports setting network QoS, with IP DSCP gitref:6034024daddb[repository=src] and Ethernet PCP gitref:81a6f4c7ae69[repository=src]. {{< sponsored "NetApp" >}} Merged the man:ping[8] and man:ping6[8] utilities. man:ping[8] supports both IPv4 and IPv6. A legacy man:ping6[8] is retained for backwards compatibility. gitref:3cde9171d2d5[repository=src] SCTP support is now available as a new [.filename]#sctp.ko# kernel module and is no longer compiled into GENERIC by default. gitref:e64080e79c53[repository=src] {{< sponsored "The FreeBSD Foundation" >}} [[network-routing]] == Routing FreeBSD 13 features a rewritten routing stack. It is based on the introduction of nexthops - objects holding all necessary state to pass a packet to the desired destination. gitref:a666325282ea[repository=src] Multipath routing support has been rewritten in more scalable fashion, featuring 64-wide multipath routes with O(1) lookup time. gitref:fedeb08b6a58[repository=src]. The `RADIX_MPATH` kernel option got replaced with `ROUTE_MPATH`, which is turned on by default. Additionally, the `net.route.multipath` sysctl has been added to control the feature in runtime. gitref:d1d941c5b910[repository=src], gitref:d5fe384b4d41[repository=src] Support for custom route lookup algorithms has been added. The framework decouples control-plane and data-plane, resulting in both faster lookups and better convergence times for large tables under load. gitref:f5baf8bb12f3[repository=src] DPDK librte-based IPv4/IPv6 route lookup algorithms has been added, optimising control-plane and data-plane for large routing tables. gitref:537d13437314[repository=src] Interface fib is now used for proxyarp checks. gitref:66bc03d41566[repository=src] Loopback route installation has been fixed for the interfaces in different fibs using the same prefix. gitref:9fdbf7eef5c0[repository=src] Number of fibs can now be changed at runtime by controlling `net.fibs` sysctl. gitref:f5247a232a33[repository=src] `net.add_addr_allfibs` sysctl default has been changed to 0. gitref:2d3982419593[repository=src] Temporal routes (routes with `-expire` time set) expiration have been for both IPv4 and IPv6. gitref:34a5582c47c7[repository=src] Duplicate routes installation issue for /32 or /128 interface aliases has been fixed. gitref:81728a538d24[repository=src] IPv6 interface routes are now marked with RTF_PINNED like their IPv4 counterparts. gitref:81728a538d24[repository=src] The {{< manpage "route" "8">}} network auto-guessing has been eliminated by removing remnants of classful behavior. gitref:d28210b2c2aa[repository=src] Sysctl `net.inet6.ip6.deembed_scopeid` , making it possible to disable IPv6 scope de-embedding, has been removed. gitref:bec053ffe01d[repository=src] [[hardware]] == Hardware Support This section covers general hardware support for physical machines, hypervisors, and virtualization environments, as well as hardware changes and updates that do not otherwise fit in other sections of this document. === AMD64 The amd64 architecture now supports Hygon Dhyana Family 18h processors. gitref:2ee49fac82fc[repository=src] The amd64 architecture now supports 57-bit virtual addresses (LA57) on supported CPUs. This permits user processes to use up to 56 bits of virtual address space. This also includes support for five layer nested page tables used by bhyve. gitref:9ce875d9b59d[repository=src] {{< sponsored "The FreeBSD Foundation" >}} [[ARM-ARM64]] === arm64 The 64-bit ARM architecture known as arm64 or AArch64 is promoted to Tier-1 status for FreeBSD 13. https://lists.freebsd.org/pipermail/freebsd-arm/2021-April/023602.html[Announcement] Added a driver for the Broadcom "GENET" ethernet driver found on the Raspberry Pi 4B. It was derived in part from NetBSD's version of the driver. gitref:2cd0c529781a[repository=src] Added support for using Address Space Identifiers (ASIDs) to the arm64 pmap. This improves TLB utilization for some workloads. gitref:50e3ab6bcf8c[repository=src] The man:linux[4] ABI compatibility layer is now enabled by default. gitref:6659d8e7c26[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Added support for the man:gdb[4] kernel debugger. gitref:bbfa199cbc16[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Added support for building ISO installer images. gitref:6dadc5d1cdec[repository=src] {{< sponsored "The FreeBSD Foundation" >}} Added SD card configuration files for the Rock64 and RockPro64. gitref:b407a449ac4c[repository=src] gitref:0edb2e1d0caa[repository=src] === ARMv5 Removed support for version 5 of the 32-bit ARM architecture. Building for `TARGET=arm` now defaults to a `TARGET_ARCH` of `armv7`. gitref:eb4977bd0fb2[repository=src] === Allwinner The aw_gpio driver now suppots GPIO interrupts. gitref:0fe5379c6a9[repository=src] A new aw_pwm driver supports Pulse Width Modulation (PWM) hardware on Allwinner boards. PWM channels can be configured with man:pwm[8]. gitref:277a038d0da[repository=src] The AXP803/AXP813 drivers now report battery sensor information. gitref:66bddb4c701[repository=src] Audio now works on H3/H5 SoCs. gitref:bfcf888a87a[repository=src] Infrared receiver now works on the H3 SoC. gitref:012fba460ac[repository=src] USB DRD now works on multiple Allwinner SoCs. This means that some USB ports can be used as peripherals. gitref:aea49d9fed9[repository=src] === RockChip A new rk_pwm driver supports PWM hardware on the RK3399. PWM channels can be configured with man:pwm[8]. gitref:bcd380e88b2[repository=src] External PCI-express adapters are now supports for the RK3399 SoC. gitref:dfd1d0fcabe[repository=src] USB3 found in RK3328 and RK3399 is now supported. gitref:7d888a5b2be[repository=src] if_dwc now supports flow control. gitref:2b4a66ed171[repository=src] if_dwc now supports checksum offloading. gitref:98ea5a7b9a1[repository=src] === POWER All powerpc architectures switched to LLVM and are currently mostly similar to amd64 toolchain-wise. gitref:678da4a27447[repository=src] powerpc (32-bit) switched to Secure-PLT. gitref:e861dab45186[repository=src] powerpc64le (64-bit little endian port) was introduced, targeting POWER8 and newer processors. gitref:b75abea4d087[repository=src] Radix MMU support for powerpc64 and powerpc64le (experimental, disabled by default). gitref:65bbba25d214[repository=src] Superpages support for powerpc64 and powerpc64le (experimental, disabled by default). gitref:e2d6c417e303[repository=src] LinuxKPI support. gitref:937a05ba81c3[repository=src] Support QEMU/KVM pseries without hugepages. gitref:b934fc74683b[repository=src] Support for handling kernel minidumps. gitref:d3c34fc0f473[repository=src] Optimized memcpy, memmove, bcopy, strncpy and strcpy. gitref:e16c18650cdc[repository=src], gitref:181e35008cfb[repository=src], gitref:075fb85f0904[repository=src] XIVE interrupt controller driver for POWER9, which improves performance by about 10%. gitref:d49fc192c141[repository=src] Converting pmap drivers to ifunc improved performance by about 20%. gitref:45b69dd63[repository=src] Plenty of stability fixes, which fix many kernel panics. Plenty of other performance improvements - performance during bulk -a package building is at least 60% higher. === Sparc Removed support for the `sparc64` architecture (SPARC 9). gitref:58aa35d42975[repository=src] [[hardware-virtualization]] === Virtualization Support The man:bhyve[8] utility supports additional COM3 and COM4 serial ports. gitref:eed1cc6cdfa[repository=src] Removed the deprecated bvmconsole and bvmdebug device models from man:bhyve[8] and the associated kernel device drivers for FreeBSD guests. gitref:c4df8cbfde5[repository=src] The man:bhyve[8] utility works reliably with more VNC clients including the macOS "Screen Sharing" application. gitref:2bb4be0f865[repository=src] The man:bhyve[8] utility now supports VirtIO-9p (aka VirtFS) filesystem sharing. gitref:100353cfbf8[repository=src] {{< sponsored "Conclusive Engineering (development), vStack.com (funding)" >}} The man:bhyve[8] utility now supports virtual machine snapshots. This feature is still in active development and is not yet enabled by default. gitref:483d953a86a[repository=src] {{< sponsored "University Politehnica of Bucharest, Matthew Grooms (student scholarships), iXsystems" >}} The man:bhyve[8] utility now supports a VM Generation Counter ACPI device. gitref:9cb339cc7b8[repository=src] The man:bhyve[8] utility now supports PCI HDAudio devices. gitref:7e3c7420615[repository=src] [[ports]] == Ports Collection and Package Infrastructure This section covers changes to the FreeBSD Ports Collection, package infrastructure, and package maintenance and installation tools. [[ports-packages]] === Packaging Changes [[future-releases]] == General Notes Regarding Future FreeBSD Releases [[future-releases-cputype]] === Default `CPUTYPE` Change The default `CPUTYPE` for the i386 architecture is now `686` (instead of `486`). This means that binaries require a 686-class CPU by default including, but not limited to, binaries provided by the FreeBSD Release Engineering team. The FreeBSD 13.0 code base continues to support older CPUs. Users who need to run on 486- or 586-class CPUs need to build their own releases. As the embedded market is the primary user of cores based on i486 and i586, end-user impact is expected to be minimal. Most embedded systems have custom builds already. Although some minor adjustments will be necessary, it will be on par with the effort required to move between major versions. Server and desktop machines based on these CPU types are generally over 20 years old. Most have been retired or are too resource poor to make FreeBSD 13.0 an attractive upgrade. There were several factors taken into account for this change. Most applications need 64-bit atomics for proper operation. While those operations can be emulated in the kernel on i486, they cannot be emulated in userland. Updating the default allows compiler generated code to select the right atomics in those cases, allow better optimizations and produce better error messages when necessary. The older library and/or include file approaches are much less optimal in resulting code and diagnostics. Current compiler technology produces better, faster, and/or smaller binaries for i686 than for i486. Several bugs in compiler support for i486 code generation attest to its lesser use in the wider ecosystem. In the wider ecosystem, i686 has been the default for many years so has received more testing and more optimization. Finally, the 32-bit amd64 libraries have been i686 since their inception. These factors strongly suggest that a i686 default will provide such an improved enough user experience to offset the minor pain for those few users of the older technology. As the majority of 32-bit testing is done by developers using the lib32 libraries on 64-bit hardware with the `COMPAT_FREEBSD32` option in the kernel, this change ensures better coverage and user experience. This also aligns with what the majority of Linux(R) distributions have been doing for quite some time. This is expected to be the final bump of the default `CPUTYPE` in i386. diff --git a/website/content/en/status/report-2009-04-2009-09.html b/website/content/en/status/report-2009-04-2009-09.html index c029ca9968..315aa07f1f 100644 --- a/website/content/en/status/report-2009-04-2009-09.html +++ b/website/content/en/status/report-2009-04-2009-09.html @@ -1,1562 +1,1562 @@ FreeBSD Quarterly Status Report
Skip site navigation (1) Skip section navigation (2)

Introduction

This report covers FreeBSD related projects between April and September 2009. During that time a lot of work has been done on wide variety of projects, including the Google Summer of Code projects. The BSDCan conference was held in Ottawa, CA, in May. The EuroBSDCon conference was held in Cambridge, UK, in September. Both events were very successful. A new major version of FreeBSD, 8.0 is to be released soon. If you are wondering what's new in this long-awaited release, read Ivan Voras' excellent summary.

Thanks to all the reporters for the excellent work! We hope you enjoy the reading.

Please note that the next deadline for submissions covering reports between October and December 2009 is January 15th, 2010.


Google Summer of Code

Projects

FreeBSD Team Reports

Network Infrastructure

Kernel

Documentation

Architectures

Ports

Miscellaneous



    Google Summer of Code


    About Google Summer of Code 2009

    Links
    FreeBSD GSoC Homepage URL: http://socghop.appspot.com/org/home/google/gsoc2009/freebsd
    FreeBSD GSoC 2009 Wiki URL: http://wiki.freebsd.org/SummerOfCode2009Projects

    Contact: Brooks Davis <brooks@freebsd.org>
    Contact: Tim Kientzle <kientzle@freebsd.org>
    Contact: Robert Watson <rwatson@freebsd.org>

    2009 was The FreeBSD Project's fifth year of participation in the Google Summer of Code. We had a total of 17 successful projects. Some GSoC code will be shipping with FreeBSD 8.0-RELEASE and others will be integrated into future releases.

    The FreeBSD GSoC admin team would like to thank Google and our students and mentors of another great year!


    BSD-licensed iconv (Summer of Code 2009)

    Links
    BSDL iconv on FreeBSD wiki URL: http://wiki.freebsd.org/G%C3%A1borSoC2009

    Contact: Gábor Kövesdán <gabor@FreeBSD.org>

    The code has been extracted from NetBSD and has been transformed into an independent shared library. The basic encodings are well supported. Almost all forward conversions (foo -> UTF-32) are compatible with GNU but the reverse ones are not so accurate because of GNU's advanced transliteration. Some extra encodings have also been added. There are two modules, which segfault; they need some debugging. I can keep working on this project as part of my BSc thesis, so I hope to be able to solve the remaining issues. Improved GNU compatibility is also very desired (extra command line options for iconv(1), iconvctl(), private interfaces, etc.).

    Open tasks:

    1. Fix segfaults in Big5 and HZ modules
    2. Improve transliteration in reverse encodings
    3. Improve GNU compatibility by implementing extra features
    4. Verify POSIX compatibility
    5. Verify GNU compatibility
    6. Check performance

    BSD-licensed text-processing tools (Summer of Code 2008)

    Links
    Wiki page for the project URL: http://wiki.freebsd.org/G%C3%A1borSoC2008

    Contact: Gábor Kövesdán <gabor@FreeBSD.org>

    This project was started as part of Google Summer of Code 2008 but there is still a bit of work to complete some missing parts. The BSD-licensed grep implementation is feature-complete and has a good level of GNU compatibility. Our only current concern about the BSD-licensed version is to improve its performance. The GNU variant is much more complex, has about 8 KSLOC, while BSD grep is tiny, has only 1.5 KSLOC. GNU uses some shortcuts and optimizations to speed-up calls to the regex library; that is why it is significantly faster. My point of view is that such optimizations must be implemented in the regex library, keeping the dependent utilities clean and easy to read. BSD grep is so tiny that there is hardly any optimization opportunity by simplifying the code, so the regex library is the next important TODO. There is another issue with the current regex library. It does not support some invalid regular expressions, which work in GNU. We need to maintain compatibility, so we cannot just drop this feature. Actually, BSD grep is linked to the GNU regex library to maintain this feature but due to the lack of the mentioned shortcuts, it is still slower than GNU. Anyway, if we can live with this little performance hit until we get a modern regex library, I think grep is ready to enter HEAD. As for the regex library, NetBSD's result of the last SoC is worth taking a look.

    The sort utility has been rewritten from scratch. The existing BSD-licensed implementation could not deal with wide characters by design. The new implementation is still lacking some features but is quite complete. There is a performance issue, though. Sorting is a typical algorithmic subject but I am not an algorithmic expert, so my implementation is not completely optimal. Some help would be welcome with this part.

    The bc/dc utilities have been ported from OpenBSD. They pass OpenBSD's and GNU's regression tests but they arrived too late to catch 8.X, so they will go to HEAD after the release.

    Open tasks:

    1. Improve sort's sorting and file merging algorithms
    2. Complete missing features for sort
    3. Get a modern regex library for FreeBSD

    Ext2fs Status report (Summer of Code 2009)

    Links
    Wiki Page URL: http://wiki.freebsd.org/SOC2009AdityaSarawgi

    Contact: Aditya Sarawgi <sarawgi.aditya@gmail.com>

    FreeBSD's ext2fs had some parts under GPL. The aim of my project was to rewrite those parts and free ext2fs from GPL. I have been successful in rewriting the parts and NetBSD's ext2fs was a great help in this. Certain critical parts under GPL were also removed due to which the write performance suffered. I also implemented Orlov Block Allocator for ext2fs. Currently I am planning to make ext2fs Multiprocessor Safe (MPSAFE). My work resides in truncs_ext2fs branch of Perforce.

    Open tasks:

    1. Ext4 support for FreeBSD
    2. Directory indexing for ext2fs
    3. Journaling in ext2fs using gjournal

    libnetstat(3) - networking statistics (Summer of Code 2009)

    Links
    Wiki page URL: http://wiki.FreeBSD.org/PGJSoc2009
    Perforce depot URL: http://p4web.freebsd.org/@md=d&cd=//&c=McZ@//depot/projects/soc2009/pgj_libstat/?ac=83

    Contact: Gábor Páli <pgj@FreeBSD.org>

    The libnetstat(3) project provides a user-space library API to monitor networking functions with the following benefits:

    • ABI-robust interface making use of accessor functions in order to divorce monitoring applications from kernel or user ABI changes.
    • Supports running 32-bit monitoring tools on top of a 64-bit kernel.
    • Improved consistency for both kvm(3) and sysctl(3) when retrieving information.

    The supported abstractions are as follows:

    • Active sockets and socket buffers
    • Network interfaces and multicast interfaces
    • mbuf(9) statistics
    • bpf(4) statistics
    • Routing statistics, routing tables, multicast routing
    • Protocol-dependent statistics

    There is a sample application, called nettop(8), which provides a simple ncurses-based top(1)-like interface for monitoring active connections and network buffer allocations via the library. A modified version of netstat(1) has also been created to use libnetstat(3) as much as possible.


    pefs - stacked cryptographic filesystem (Summer of Code 2009)

    Links
    Gleb's Blog URL: http://blogs.freebsdish.org/gleb/
    Project page in FreeBSD wiki URL: http://wiki.freebsd.org/SOC2009GlebKurtsov

    Contact: Gleb Kurtsou <gk@FreeBSD.org>
    Contact: Stanislav Sedov <stas@FreeBSD.org>

    Pefs is a kernel level filesystem for transparently encrypting files on top of other filesystems (like zfs or ufs). It adds no extra information into files (unlike others), doesn't require cipher block sized io operations, supports per directory/file keys and key chaining, uses unique per file tweak for encryption. Supported algorithms: AES, Camellia, Salsa20. The code is ready for testing.

    Open tasks:

    1. Implement encrypted name lookup/readir cache
    2. Optimize sparse files handling and file resizing


    Projects


    BSD# Project

    Links
    The BSD# project on Google code URL: http://code.google.com/p/bsd-sharp/
    Mono (Open source .NET Development Framework) URL: http://www.mono-project.org/

    Contact: Romain Tartičre <romain@blogreen.org>

    The BSD# Project is devoted to porting the Mono .NET framework and applications to the FreeBSD operating system.

    During the past year, the BSD# Team continued to track the Mono development and the lang/mono port have almost always been up-to-date (we however had to skip mono-2.2 because of some regression issues in this release). Most of our patches have been merged in the mono trunk upstream, and should be included in the upcoming mono-2.6 release.

    In the meantime, a few more .NET related ports have been updated or added to the FreeBSD ports tree. These ports include:

    • www/xsp and www/mod_mono that make it possible to use FreeBSD for hosting ASP.NET application;
    • lang/boo, a CLI-targeted programming language similar to Python;
    • lang/mono-basic, the Visual Basic .NET Framework for Mono;
    • devel/monodevelop, an Integrated Development Environment for .NET;
    • and much more...

    Open tasks:

    1. Test mono ports and send feedback (we are especially interested in tests where NOPORTDOCS / WITH_DEBUG is enabled).
    2. Port the mono-debugger to FreeBSD.
    3. Build a debug live-image of FreeBSD so that Mono hackers without a FreeBSD box can help us fixing bugs more efficiently.

    Clang replacing GCC in the base system

    Links
    URL: http://wiki.freebsd.org/BuildingFreeBSDWithClang

    Contact: Ed Schouten <ed@FreeBSD.org>
    Contact: Roman Divacky <rdivacky@FreeBSD.org>
    Contact: Brooks Davis <brooks@FreeBSD.org>
    Contact: Pawel Worach <pawel.worach@gmail.com>

    The clang@FreeBSD team presents the status of clang/LLVM being able to compile FreeBSD system. The current status is:

    • i386 - kernel boots, world needs little hacks but works
    • amd64 - kernel boots, world needs little hacks but works
    • ppc - broken because of unknown RTLD bug
    • other - unknown

    All other platforms are untested.

    A lot has happened over the spring/summer: amd64 got proper mcmodel=kernel support, compiler-rt has been introduced (paving the way for libgcc replacement), we have run two experimental port builds to see how clang does there. The C++ support is able to parse devd.cc without warnings. We have got the kernel working with -O2. FreeBSD has been promoted to be an officially supported plaform in LLVM. As a result of all this work, many parts of FreeBSD that did not compile before now build without problems.

    Open tasks:

    1. The "ClangBSD" branch of FreeBSD got a little stale and has not been updated for a while.
    2. We also need to get some important fixes into LLVM to get libc compiling and some other smaller issues.
    3. We can still appreciate more testers on minor platforms (mostly on ARM, PPC and MIPS, but testing on other platforms is also welcome).

    FreeBSD TDM Framework

    Contact: Rafal Czubak <rcz@semihalf.com>
    Contact: Michal Hajduk <mih@semihalf.com>

    This work's purpose is a generic and flexible framework for systems equipped with Time Division Multiplexing (TDM) units, often found on embedded telecom chips. The framework is designed to support various controllers and many types of TDM channels e.g. voiceband, sound and miscellaneous data channels. Currently, voiceband infrastructure is being developed on Marvell RD-88F6281 reference board. It will serve as an example of how to use the TDM framework for other channel types. The direct objective of using TDM with voiceband channels is bringing a FreeBSD based VoIP system, capable of bridging analog telephone world with digital IP telephony. Together with third party VoIP software (e.g. Asterisk), the design can serve as VoIP Private Branch Exchange (PBX).

    Current state highlights:

    • TDM controller interface
    • TDM channel interface
    • TDM channel API for kernel modules
    • codec interface
    • voiceband channel character device driver
    • TDM controller driver for Marvell Kirkwood and Discovery SoCs
    • Si3215 SLIC driver
    • Si3050 DAA driver

    Open tasks:

    1. Develop demo application showing example usage of voiceband channel.
    2. Integrate voiceband infrastructure with Zaptel/DAHDI telephony hardware drivers.

    Grand Central Dispatch - FreeBSD port

    Links
    GCD / libdispatch web page URL: http://libdispatch.macosforge.org/

    Contact: Robert Watson <rwatson@FreeBSD.org>
    Contact: Stacey Son <sson@FreeBSD.org>
    Contact: libdispatch mailing list <libdispatch-dev@lists.macosforge.org>

    We have ported libdispatch, Apple's Grand Central Dispatch event and concurrency framework to FreeBSD:

    • Added new kqueue primitives required to support GCD, such as EVFILT_USER and EV_TRIGGER
    • Created autoconf and automake build framework for libdispatch
    • Modified libdispatch to use POSIX semaphores instead of Mach semaphores
    • Adapted libdispatch to use portable POSIX time routines

    Jordan Hubbard has also prepared a blocks-aware clang compiler package for FreeBSD. When compiled with clang, libdispatch provides blocks-based, as well as function-based callbacks.

    The port was presented at the FreeBSD Developer Summit in Cambridge, UK in September, and slides are online on the devsummit wiki page. A FreeBSD port is now available in the Ports Collection. After FreeBSD 8.0-RELEASE has shipped, the new kqueue primitives will be MFC'd so that libdispatch works out of the box on FreeBSD 8.1-RELEASE.

    Open tasks:

    1. Complete porting of libdispatch test suite to FreeBSD.
    2. Investigate pthread work queue implementation for FreeBSD.
    3. Evaluate performance impact of some machine-dependent and OS-dependent optimizations present in the Mac OS X version of libdispatch to decide if they should be done for other platforms and OS's.
    4. Explore whether FreeBSD base operating system tools would benefit from being modified to use libdispatch.

    libprocstat(3) - process statistics

    Links
    libprocstat repository URL: http://svn.freebsd.org/viewvc/base/projects/libprocstat/

    Contact: Stanislav Sedov <stas@FreeBSD.org>
    Contact: Ulf Lilleengen <lulf@FreeBSD.org>

    The libprocstat project is an ongoing effort to develop a library that can be used to retrieve information about running processes and open files in the uniform and platform-independent way both from a running system or from core files. This will facilitate the implementation of file- or process-monitoring applications like lsof(1), fstat(1), fuser, etc. The libprocstat repository contains a preliminary version of the library. It also includes rewrites of the fstat and the fuser utilities ported to use this library instead of retrieving all the required information via the kvm(3) interface; one of the important advantages of the versions that use libprocstat is that these utilities are ABI independent.

    Open tasks:

    1. Implement KVM-based namecache lookup to retrieve filesystem paths associated with file descriptors and VM objects.
    2. Analyze possible ways of exporting file and process information from the kernel in an extensible and ABI-independent way.

    New BSD licensed debugger

    Links
    Wiki page URL: http://wiki.freebsd.org/TheBsdDebugger
    Repository URL: http://people.freebsd.org/~dfr/ngdb.git
    Slides URL: http://wiki.freebsd.org/200909DevSummit?action=AttachFile&do=view&target=NGDB-200909.pdf

    Contact: Doug Rabson <>

    I have been working recently on writing a new debugger, primarily for the FreeBSD platform. For various reasons, I have been writing it in a relatively obscure C-like language called D.

    So far, I have a pretty useful (if a little raw at the edges) command line debugger which supports ELF, Dwarf debugging information and (currently) 32 bit FreeBSD and Linux. The engine includes parsing and evaluation of arbitrary C expressions along with the usual debugging tools such as breakpoints, source code listing, single-step etc. All the code is new and BSD licensed. Currently, the thing supports userland debugging of i386 targets via ptrace and post-mortem core file debugging of the same. I will be adding amd64 support real soon (TM) and maybe support for GDB's remote debugging protocol later.


    NFSv4 ACLs

    Links
    URL: http://wiki.freebsd.org/NFSv4_ACLs

    Contact: Edward Tomasz Napierala <trasz@FreeBSD.org>

    During Google Summer of Code 2008, I have implemented native support for NFSv4 ACLs for both ZFS and UFS. Most of the code has already been merged to CURRENT. NFSv4 ACLs are unconditionally enabled in ZFS and the usual tools, like getfacl(1) and setfacl(1) can be used to view and change them. I plan to merge the remaining bits (UFS support) this month. It should be possible to MFC it in order to ship in FreeBSD 8.1-RELEASE.

    Open tasks:

    1. UFS changes review
    2. Support for NFSv4 ACLs in tar(1)

    The Newcons project

    Links
    Wiki page URL: http://wiki.FreeBSD.org/Newcons
    Patchset URL: http://people.freebsd.org/~ed/newcons/patches/

    Contact: Ed Schouten <ed@FreeBSD.org>

    Some time ago I started writing a new driver for the FreeBSD kernel called vt(4), which is basically a replacement of syscons. There is still a lot of work that needs to be done but it is probably useful to mention what it does (and what does not).

    Right now there are just two graphics drivers for vt(4), namely a VGA driver for i386 and amd64 and a Microsoft Xbox graphics driver (because it was so easy to implement). I still have to figure out what I am going to do with VESA, because maybe it is better to just ignore VESA and figure out how hard it is to extend DRM to interact with vt(4).

    Some random features: it already supports both Unicode (UTF-8) input and output, it is MPSAFE and supports per-window graphical fonts of variable dimensions, containing an almost infinite amount of glyphs (both bold and regular).

    Open tasks:

    1. Research needs to be done on DRM's codebase.
    2. Syscons should already be migrated to TERM=xterm to make switching between drivers a bit easier.

    VirtualBox on FreeBSD

    Links
    URL: http://wiki.freebsd.org/VirtualBox

    Contact: Beat Gaetzi <beat@FreeBSD.org>
    Contact: Bernhard Froehlich <decke@bluelife.at>
    Contact: Dennis Herrmann <dhn@FreeBSD.org>
    Contact: Juergen Lock <nox@FreeBSD.org>
    Contact: Martin Wilke <miwi@FreeBSD.org>

    VirtualBox has been committed to the Ports tree and synchronized with the latest trunk version from Sun. Several known problems are already fixed and some new features have been added:

    • VT-x support
    • Bridging support (Big Thanks to Fredrik Lindberg)
    • Host Serial Support
    • ACPI Support
    • Host DVD/CD access
    • SMP Support

    We would like to say thanks to all the people who helped us by reporting bugs and submitting fixes. We also thank the VirtualBox developers for their help with the ongoing effort to port VirtualBox on FreeBSD.



    FreeBSD Team Reports


    FreeBSD Bugbusting Team

    Links
    URL: http://www.FreeBSD.org/support.html#gnats
    URL: http://wiki.FreeBSD.org/BugBusting
    URL: http://people.FreeBSD.org/~linimon/studies/prs/
    URL: http://people.FreeBSD.org/~linimon/studies/prs/recommended_prs.html

    Contact: Gavin Atkinson <gavin@FreeBSD.org>
    Contact: Mark Linimon <linimon@FreeBSD.org>
    Contact: Remko Lodder <remko@FreeBSD.org>
    Contact: Volker Werth <vwe@FreeBSD.org>

    We continue to classify PRs as they arrive, adding 'tags' to the subject lines corresponding to the kernel subsystem involved, or man page references for userland PRs. These tags, in turn, produce lists of PRs sorted both by tag and by manpage.

    The list of PRs recommended for committer evaluation by the Bugbusting Team continues to receive new additions. This list contains PRs, mostly with patches, that the Bugbusting Team feel are probably ready to be committed as-is, or are probably trivially resolved in the hands of a committer with knowledge of the particular subsystem. All committers are invited to take a look at this list whenever they have a spare 5 minutes and wish to close a PR.

    A full list of all the automatically generated reports is also available at one of the cited URLs. Any recommendations for reports which not currently exist but which would be beneficial are welcomed.

    Gavin Atkinson gave a presentation on "The PR Collection Status" at the EuroBSDCon 2009 DevSummit, and discussed with other participants several other ideas to make the PR database more useful and usable. Several good ideas came from this, and will hopefully lead to more useful tools in the near future. Discussions also took place on how it may be possible to automatically classify non-ports PRs with a view towards notifying interested parties, although investigations into this have not yet begun.

    Mark Linimon also continues attempting to define the general problem and investigating possible new workflow models, and presented work on this at BSDCan 2009.

    Since the last status report, the number of open bugs has increased to around the 5900 mark, partially because of an increased focus on getting more information into the existing PRs, in an attempt to make sure all the information required is now available. As a result, although the number of open PRs has increased, they are hopefully of better quality.

    As always, more help is appreciated, and committers and non-committers alike are always invited to join us on #freebsd-bugbusters on EFnet and help close stale PRs or commit patches from valid PRs.

    Open tasks:

    1. Work on suggestions from developers who were at the EuroBSDCon DevSummit.
    2. Try to find ways to get more committers helping us with closing the PRs that the team has already analyzed.

    FreeBSD KDE Team

    Links
    URL: http://freebsd.kde.org
    URL: http://miwi.bsdcrew.de/category/kde/
    URL: http://blogs.freebsdish.org/tabthorpe/category/kde

    Contact: Thomas Abthorpe <tabthorpe@FreeBSD.org>
    Contact: Max Brazhnikov <makc@FreeBSD.org>
    Contact: Martin Wilke <miwi@FreeBSD.org>

    Since the spring, the FreeBSD KDE team has been busy upgrading KDE from 4.2.0 up through to 4.3.1. As part of the ongoing maintenance of KDE, the team also updated Qt4 from 4.4.3 through to 4.5.2

    We added two new committers/maintainers to the team, Kris Moore (kmoore@) and Dima Panov (fluffy@). We also granted enhanced area51 access to contributors Alberto Villa and Raphael Kubo da Costa. Alberto has been our key contributor updating and testing Qt 4.6.0-tp1. Raphael is a KDE developer, who has become our Gitorious liaison, he has been responsible for getting FreeBSD Qt patches merged in upstream.

    Markus Brüffer (markus@) spent a lot of time patching widgets and system plugins so they would work under FreeBSD. We would like to thank him for all his effort!

    Open tasks:

    1. Update to Qt 4.6.0
    2. Update to KDE 4.4.0
    3. Work with our userbase on fixing an EOL for KDE3 in the ports tree

    FreeBSD Ports Management Team

    Links
    The FreeBSD Ports Collection URL: http://www.freebsd.org/ports/
    Contributing to the FreeBSD Ports Collection URL: http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/
    The FreeBSD ports monitoring system URL: http://portsmon.FreeBSD.org/index.html
    The FreeBSD Ports Management Team URL: http://www.freebsd.org/portmgr/index.html
    marcuscom Tinderbox URL: http://tinderbox.marcuscom.com

    Contact: Mark Linimon <linimon@FreeBSD.org>

    The ports count has soared to over 20,700. The PR count had been driven below 800 by some extraordinary effort, but once again is back to its usual count of around 900.

    We are currently building packages for amd64-6, amd64-7, amd64-8, i386-6, i386-7, i386-8, sparc64-7, and sparc64-8. There have been preliminary runs of i386-9; however, to be able to continue builds on -9, we will either need to find places to host a number of new machines, or drop package building for -6. The mailing list discussion of the latter proved quite controversial.

    We have added some new i386 machines to help speed up the builds, but this only makes up for the disk failures on some of our older, slower, i386 nodes.

    We also appreciate the loan of more package build machines from several committers, including pgollucci@, gahr@, erwin@, Boris Kochergin, and Craig Butler.

    The portmgr@ team has also welcomed new members Ion-Mihai Tetcu (itetcu@) and Martin Wilke (miwi@). We also thank departing member Kirill Ponomarew (krion@) for his long service.

    Ion-Mihai has spent much time working on a system that does automatic Quality Assurance on new commits, called QAT. A second tinderbox called QATty has helped us to fix many problems, especially those involving custom PREFIX and LOCALBASE settings, and documentation inclusion options. Ports conformance to documented features / non-default configuration will follow.

    Between pav and miwi, over 2 dozen experimental ports runs have been completed and committed.

    We have added 5 new committers since the last report, and 2 older ones have rejoined.

    Open tasks:

    1. We are currently trying to set up ports tinderboxes that can be made available to committers for pre-testing; those who can loan machines for this should contact Ion-Mihai (itetcu@) with details regarding the hardware and bandwidth.
    2. Most of the remaining ports PRs are "existing port/PR assigned to committer". Although the maintainer-timeout policy is helping to keep the backlog down, we are going to need to do more to get the ports in the shape they really need to be in.
    3. Although we have added many maintainers, we still have almost 4,700 unmaintained ports (see, for instance, the list on portsmon). (The percentage is down to 22%.) We are always looking for dedicated volunteers to adopt at least a few unmaintained ports. As well, the packages on amd64 and sparc64 lag behind i386, and we need more testers for those.

    Release Engineering Status Report

    Links
    URL: http://www.FreeBSD.org/releng/

    Contact: Release Engineering Team <re@FreeBSD.org>

    The Release Engineering Team continues to work on FreeBSD 8.0-RELEASE. Public testing has turned up quite a few problems, many related to the low-level network (routing/ARP table) changes and their interactions with IPv6.

    Progress continues to be made on fixing up the issues that have been identified during the public testing. At this point in time we are shooting for two more public test builds (RC2 and RC3) followed by the release late October or early November.


    The FreeBSD Foundation Status Report

    Links
    URL: http://www.freebsdfoundation.org

    Contact: Deb Goodkin <deb@FreeBSDFoundation.org>

    Kicking off our fall fund-raising campaign! Find out more at http://www.freebsdfoundation.org/donate/.

    We were a sponsor for EuroBSDCon 2009, and provided travel grants to 8 FreeBSD developers and users. We sponsored Kyiv BSD 2009, in Kiev Ukraine. We were also a sponsor of BSDCan, and sponsored 7 developers. We funded three new projects, New Console Driver by Ed Schouten, AVR32 Support by Arnar Mar Sig, and Wireless Mesh Support by Rui Paulo, which has completed. We continued funding a project that is making improvements to the FreeBSD TCP Stack by Lawrence Stewart. The project that made removing disk devices with mounted filesystems on them safe, by Edward Napierala, is now complete.

    We recognized the following FreeBSD developers at EuroBSDCon 2009: Poul-Henning Kamp, Bjoern Zeeb, and Simon Nielsen. These developers received limited edition FreeBSD Foundation vests.

    Follow us on Twitter now!



    Network Infrastructure


    Enhancing the FreeBSD TCP Implementation

    Links
    URL: http://caia.swin.edu.au/freebsd/etcp09/
    URL: http://caia.swin.edu.au/urp/newtcp/
    URL: http://www.freebsdfoundation.org/projects.shtml
    URL: http://people.freebsd.org/~lstewart/patches/tcp_ffcaia2008/

    Contact: Lawrence Stewart <lstewart@freebsd.org>

    TCP appropriate byte counting (RFC 3465) support has been merged into the FreeBSD 8 branch and will ship in FreeBSD 8.0-RELEASE.

    The reassembly queue auto-tuning and SIFTR work was not ready in time to safely integrate for 8.0-RELEASE. Padding has been added to necessary TCP structs to facilitate MFCing features back to the 8-STABLE branch after 8.0 is released.

    Candidate patches against FreeBSD-CURRENT will be ready for wider testing in the coming weeks. The freebsd-net mailing list will be solicited for testing/feedback when everything is ready.

    Open tasks:

    1. Solicit review/testing and integrate the ALQ kld and variable length message support patch into FreeBSD-CURRENT.
    2. Solicit review/testing and integrate the SIFTR tool into FreeBSD-CURRENT.
    3. Complete dynamic reassembly queue auto-tuning patch for FreeBSD-CURRENT.
    4. Fix an identified bug in the SACK implementation's fast retransmit/fast recovery behavior.
    5. Profit!

    Modular Congestion Control

    Links
    URL: http://caia.swin.edu.au/urp/newtcp/
    URL: http://svn.freebsd.org/viewvc/base/projects/tcp_cc_8.x/

    Contact: Lawrence Stewart <lstewart@freebsd.org>

    The patch has received some significant rototilling in the past few months to prepare it for merging to FreeBSD-CURRENT. Additionally, I completed an implementation of the CUBIC congestion control algorithm to complement the existing NewReno and H-TCP algorithm implementations already available.

    I have one further intrusive change to make, which will allow congestion control modules to be shared between the TCP and SCTP stacks. Once this is complete, I will be soliciting for review/testing in the hope of committing the patch to FreeBSD-CURRENT in time to be able to backport it for 8.1-RELEASE.

    Open tasks:

    1. Abstract the congestion control specific variables out of the TCP and SCTP control blocks into a new struct that can be passed into the API instead of the control block itself.

    Network Stack Virtualization

    Links
    Wiki VImage overview page (incl. TODO). URL: http://wiki.freebsd.org/Image
    FreeBSD Developer Summit, 2009, Cambridge, UK. URL: http://wiki.freebsd.org/200909DevSummit

    Contact: Bjoern A. Zeeb <bz@FreeBSD.ORG>
    Contact: Marko Zec <zec@FreeBSD.ORG>
    Contact: Robert Watson <rwatson@FreeBSD.ORG>

    The network stack virtualization project aims at extending the FreeBSD kernel to maintain multiple independent instances of networking state. This allows for networking independence between jail environment, each maintaining its private network interfaces, IPv4 and IPv6 network and port address space, routing tables, IPSec configuration, firewalls, and more.

    During the last months the remaining pieces of the VIMAGE work were merged by Marko, Julian and Bjoern. Robert Watson developed a vnet allocator to overcome ABI issues. Jamie Gritton merged his hierarchical jail framework that now also is the management interface for virtual network stacks.

    During the FreeBSD Developer Summit that took place at EuroBSDCon 2009 in Cambridge, UK, people virtualized more code. As a result SCTP and another accept filter were virtualized and more people became familiar with the design of VImage and the underlying concepts. Finally getting more hands involved was a crucial first step for the long term success of kernel virtualization.

    The next steps will be to finish the network stack virtualization, generalize the allocator framework before thinking of virtualizing further subsystems and to update the related documentation. Along with that a proper jail management framework will be worked on. Long term goals, amongst others, will be to virtualize more subsystems like SYS-V IPC, better privilege handling, and resource limits.

    In the upcoming FreeBSD 8.0 Release, vnets are treated as an experimental feature. As a result, they are not yet recommended for use in production environments. There was lots of time spent to finalize the infrastructure for vnets though, so that further changes can be merged and we are aiming to have things production ready for 8.2.

    In case you want to help to achieve this goal, feel free to contact us and support or help virtualizing outstanding parts like two firewalls, appletalk, netipx, ... as well as generating regression tests.


    Stream Control Transmission Protocol (SCTP)

    Contact: Randall Stewart <rrs@FreeBSD>

    SCTP continues to have minor fixes added to it as well as some new features. First and foremost, we now have VIMAGE and SCTP working and playing together. This goal was accomplished with the help of bz@, my new mentee tuexen@ and myself working together at the FreeBSD DevSummit in Cambridge, UK. Also the non-renegable SACK feature contributed by the university of Delaware was fixed so that now its safe to turn on (its sysctl). If you are using SCTP with CMT (Conncurrent Multipath Transfer) you will want to enable this option (CMT is also a sysctl). With CMT enabled you will be able to send data to all the destinations of an SCTP peer.

    We welcomed a new mentee (soon to be a commiter) to FreeBSD. Michael Tuexen is now a mentee of rrs@. Michael has been contributing to the SCTP work for quite some time and also moonlights as a Professor at the University of Muenster in Germany (when not doing SCTP coding).



    Kernel


    FreeBSD/ZFS

    Contact: Pawel Dawidek <pjd@FreeBSD.org>

    We believe that the ZFS file system is now production-ready in FreeBSD 8.0. Most (if not all) reported bugs were fixed and ZFS is no longer tagged as experimental. There is also ongoing work in Perforce to bring the latest ZFS version (v19) to FreeBSD.

    Open tasks:

    1. Download 8.0 release candidates and test, test, test and report any problems to the freebsd-fs@FreeBSD.org mailing list.

    hwpmc for MIPS

    Links
    Main FreeBSD MIPS Page URL: http://wiki.freebsd.org/FreeBSD/mips
    Sub page for the board I am using. URL: http://wiki.freebsd.org/FreeBSD/mips/UBNT-RouterStationPro

    Contact: George Neville-Neil <gnn@freebsd.org>

    Currently working on board bringup. I have looked over the docs for how MIPS provides performance counters and will begin adding code soon.



    Documentation


    The FreeBSD Dutch Documentation Project

    Links
    Current status of the Dutch translation URL: http://www.freebsd.org/docproj/translations.html#dutch

    Contact: René Ladan <rene@FreeBSD.org>
    Contact: Remko Lodder <remko@FreeBSD.org>

    The current translations (Handbook and some articles) are kept up to date with the English versions. Some parts of the website have been translated, more work is in progress.

    Open tasks:

    1. Find more volunteers for translating the remaining parts of the website and the FAQ.

    The FreeBSD German Documentation Project

    Links
    URL: https://doc.bsdgroup.de
    URL: http://code.google.com/p/bsdcg-trans/wiki/BSDPJTAdede

    Contact: Johann Kois <jkois@FreeBSD.org>
    Contact: Benedict Reuschling <bcr@FreeBSD.org>
    Contact: Martin Wilke <miwi@FreeBSD.org>

    In May 2009, Benedict Reuschling received his commit bit to the www/de and doc/de_DE.ISO8859-1 trees under the mentorship of Johann Kois. Since then, he has been working primarily on the Handbook, updating existing chapters and translating new ones. Most notably, the filesystems and DTrace chapters have been recently translated. Bugs found in the original documents along the way were reported back so that the other translation teams could incorporate them, as well.

    Christoph Sold has put his time in translating the wiki pages of the BSD Certification Group into the German language. This is very helpful for all German people who want to take the exam and like to read the information about it in their native language. Daniel Seuffert has sent valuable corrections and bugfixes. Thanks to both of them for their time and efforts!

    The website is translated and updated constantly. Missing parts will be translated as time permits.

    We appreciate any help from volunteers in proofreading documents, translating new ones and keeping them up to date. Even small error reports are of great help for us. You can find contact information at the above URL.

    Open tasks:

    1. Update the existing documentation set (especially the Handbook).
    2. Translate more articles to German.
    3. Read the translations. Check for problems and mistakes. Send feedback.

    The FreeBSD Hungarian Documentation Project

    Links
    Hungarian Web Page for FreeBSD URL: http://www.FreeBSD.org/hu
    Hungarian Documentation for FreeBSD URL: http://www.FreeBSD.org/doc/hu
    The FreeBSD Hungarian Documentation Project's Wiki Page URL: http://wiki.FreeBSD.org/HungarianDocumentationProject
    Perforce Depot for the FreeBSD Hungarian Documentation Project URL: http://p4web.freebsd.org/@md=d&cd=//depot/projects/docproj_hu/&c=aXw@//depot/projects/docproj_hu/?ac=83

    Contact: Gábor Kövesdán <gabor@FreeBSD.org>
    Contact: Gábor Páli <pgj@FreeBSD.org>

    In the last months, we have not added new translations, although we have been working on the existing ones to have them updated. We need more translators and volunteers to keep the amount of the translated documentation growing, so feel free to contribute. Every line of submission or feedback is appreciated and highly welcome.

    If you want to join our work, please read the introduction to the project as well as the FDP Primer (both of them are available in Hungarian).

    Open tasks:

    1. Translate news entries, press releases
    2. Translate Release Notes for -CURRENT and 8.X
    3. Translate articles
    4. Translate web pages
    5. Read the translations, send feedback

    The FreeBSD Spanish Documentation Project

    Links
    Spanish Web Page for FreeBSD URL: http://www.FreeBSD.org/es
    Spanish Documentation for FreeBSD URL: http://www.FreeBSD.org/doc/es
    Introduction to the FreeBSD Spanish Documentation Project URL: http://www.freebsd.org/doc/es/articles/fdp-es/

    Contact: José Vicente Carrasco Vayá <carvay@FreeBSD.org>
    Contact: Gábor Kövesdán <gabor@FreeBSD.org>

    Recently, we have added one new article translation. The existing translations have not been updated, though. We need more human resources to keep up with the work and keep the translations up-to-date.

    Open tasks:

    1. Update the Handbook translation
    2. Update the web page translation


    Architectures


    FreeBSD/sparc64

    Links

    Contact: Marius Strobl <marius@FreeBSD.org>

    Noteworthy developments regarding FreeBSD/sparc64 since the last Status Reports are:

    • Cas(4), a driver for Sun Cassini/Cassini+, as well as National Semiconductor DP83065 Saturn Gigabit NICs has been committed and thus will be part of FreeBSD beginning with 8.0-RELEASE and 7.3-RELEASE, respectively. This means that the on-board NICs found in Fire V440, as well as the add-on cards based on these chips, are now supported, including on non-sparc64 machines. Unfortunately, the cas(4) driver triggers what seem to be secondary problems with the on-board NICs found in B100 blades and Fire V480, which due to lack of access to such systems could not be fixed so far.
    • Initial support for sun4u machines based on the "Fire" Host-PCI-Express bridge like Fire V215, V245, etc. has been completed (including support for the on-board ATA controller, which caused several problems at first, and MSI/MSI-X). Some code like the quirk handling for the ALi/ULi chips found in these machines needs to be revisited though and no stability tests have been conducted so far. If all goes well, the code will hit HEAD some time after FreeBSD 8.0-RELEASE has been released. In theory, machines based on the "Oberon" Host-PCI-Express bridge, at least for the most part, should also be supported with these changes, but due to lack of access to a Mx000 series machine the code could not be tested with these so far.
    • Some bugs in the snd_t4dwave(4) driver have been fixed, as well as some special handling for sparc64 has been added so it does 32-bit DMA and now generally works with the on-board ALi M5451 found for example in Blade 100 and Blade 1500. Unfortunately, it was only tested to work correctly in two out of three Blade 100. Why it still does not work correctly in the remaining one is currently unknown but at least no longer causes IOMMU-panics so testing snd_t4dwave(4) on sparc64 is no longer harmful. These changes will be part of FreeBSD 8.0-RELEASE and 7.3-RELEASE.
    • Ata-marvell(4) has been fixed to work on sparc64 (actually also on anything that is not x86 with less than 4GB of RAM). These fixes will be part of FreeBSD 8.0-RELEASE and 7.3-RELEASE.
    • A proper and machine-independent fix for the old problem that the loader leaves the NIC opened by the firmware, which could lead to panics during boot when netbooting, has been developed but not committed yet.

    Open tasks:



      Ports


      FreeBSD Gecko Project

      Links
      Gecko TODO URL: https://trillian.chruetertee.ch/freebsd-gecko/wiki/TODO

      Contact: Beat Gaetzi <beat@FreeBSD.org>
      Contact: Martin Wilke <miwi@FreeBSD.org>
      Contact: Andreas Tobler <andreast-list@fgznet.ch>

      Andreas Tobler made the classic mistake of sending us a lot of powerpc and sparc64 related patches. The usual punishment, of giving him a commit bit to the Gecko repository, has been applied.

      We currently have some old ports in the ports tree:

      • www/mozilla is 5 year old now, no longer supported upstream, and has a lot of security vulnerabilities. We can use www/seamonkey instead.
      • -
      • www/xulrunner is superseeded by www/libxul.
      • +
      • www/xulrunner is superseded by www/libxul.

      A patch that includes the following changes has been tested on pointyhat and is ready for commit:

      • Remove references to www/mozilla/Makefile.common and www/mozilla/bsd.gecko.mk
      • Switch USE_GECKO= xulrunner firefox mozilla to USE_GECKO= libxul and remove www/xulrunner

      We are also working on Firefox 3.6 (Alpha 2), Thunderbird 3.0 (Beta 4), new libxul 1.9.1.3 and Seamonkey 2.0 (Beta 2) ports. All of them are already committed to our Gecko repository.

      A current status and todo list can be found at http://trillian.chruetertee.ch/freebsd-gecko/wiki/TODO.

      Open tasks:

      1. Remove mozilla, xulrunner and firefox2 from the ports tree.
      2. The www/firefox35 port should be moved to www/firefox.
      3. The old (and somewhat stale) Gecko providers mozilla, nvu, xulrunner, flock and firefox also need to be removed.

      Portmaster - utility to assist users with managing ports

      Links
      URL: http://dougbarton.us/portmaster.html

      Contact: Doug Barton <dougb@FreeBSD.org>

      I am currently seeking funding for further development work on portmaster. There are several features that are regularly requested by the community (such as support for installing packages) that I would very much like to implement but that will take more time than I can reasonably volunteer to implement correctly. There is information about the funding proposal available at the link above.

      Meanwhile I have recently completed another round of bug fixes and feature enhancements. The often-requested ability to specify the -x (exclude) option more than once on the command line was added in version 2.12. Also in that version I added the --list-origins option to make it easier to reinstall ports after a major version upgrade, or install the same set of ports on another system.

      Open tasks:

      1. See the funding proposal.

      Valgrind suite on FreeBSD

      Links
      Valgrind Wiki page URL: http://wiki.freebsd.org/Valgrind

      Contact: Stanislav Sedov <stas@FreeBSD.org>

      The Valgrind suite in the FreeBSD ports collection has been updated to version 3.5.0 (the latest available version). Most of the issues of the previous version should be resolved now: we expect memcheck, callgrind and cachegrind to be fully functional on both i386 and amd64 platforms as well as for i386 binaries running on amd64 system. DRD/hellgrind should work too, though they generate a lot of false-positives for now, so their output is a bit messy.

      Open tasks:

      1. Port exp-ptrcheck valgrind tool and fix outstanding issues that show up in memcheck/helgrind/DRD in the Valgrind regression tests suite.
      2. More testing (please, help).
      3. Integrate our patches upstream.


      Miscellaneous


      EuroBSDcon 2009

      Links
      2009 URL: http://2009.eurobsdcon.org/
      2010 URL: http://2010.eurobsdcon.org/

      Contact: Sam Smith <eurobsdcon@ukuug.org>
      Contact: Robert Watson <rwatson@FreeBSD.org>

      EuroBSDcon 2009 happened in Cambridge, with over 160 users, developers, friends and others. Slides, papers and audio are now up on the website for those who could not make it to Cambridge. Next year's event in 2010 will take place in Karlsruhe from 8 to 10 October 2010. If you are interested in what you missed in 2009, or to join the mailing list so you do not miss out next year, visit http://2009.eurobsdcon.org.


      FreeBSD Developer Summit, Cambridge UK

      Links
      URL: http://wiki.FreeBSD.org/200909DevSummit

      Contact: Robert Watson <rwatson@FreeBSD.org>

      Around 70 FreeBSD developers and guests attended the FreeBSD developer summit prior to EuroBSDCon 2009 in Cambridge, UK. Hosted at the University of Cambridge Computer Laboratory, the workshop-style event consisted of prepared presentations, as well as group hacking and discussion sessions. Talks covered topics including 802.11 mesh networking, virtual network stacks and kernels, a new BSD-licensed debugger, benchmarking, bugbusting, NetFPGA, a port of Apple's GCD (Grand Central Dispatch) to FreeBSD, security policy work, cryptographic signatures, FreeBSD.org system administration, time geeks, a new console driver, and the FreeBSD subversion migration. Slides for many talks are now available on the wiki page. A good time was had by all, including a punting outing on the River Cam!


      New approach to the locale database

      Links
      Documentation on FreeBSD wiki URL: http://wiki.freebsd.org/LocaleNewApproach
      Code URL: svn://svn.freebsd.org/base/user/edwin/locale

      Contact: Edwin Groothuis <edwin@FreeBSD.org>
      Contact: i18n mailinglist <freebsd-i18n@FreeBSD.org>

      Problem: Over the years the FreeBSD locale database (share/colldef, share/monetdef, share/msgdef, share/numericdef, share/timedef) has accumulated a total of 165 definitions (language - country-code - character-set triplets). The contents of the files for Western European languages are often low-ASCII but for Eastern European and Asian languages partly or fully high-ASCII. Without knowing how to display or interpret the character-sets, it is difficult to make sure by the general audience that the local language (language - country-code) definitions are displayed properly in various character-sets.

      Suggested approach: With the combination of the data in the Unicode project (whose goal is to define all the possible written characters and symbols on this planet) and the Common Locale Data Repository (whose goal is to document all the different data and definitions needed for the locale database), we can easily keep track of the data, without the need of being able to display the data in the required character sets or understand them fully when updates are submitted by third parties.

      Current status: Conversion of share/monetdef, share/msgdef, share/numericdef, share/timedef to the new design is completed. The Makefile infrastructure is converted. Regression checks are done. Most of the tools are in place, waiting on the import of bsdiconv to the base system.

      Open tasks:

      1. At this moment the system is not self-hosted yet, because of the lack of an iconv-kind of program in the base operating system. Gabor@ is working on bsdiconv as a GSoC project and once that has been imported we will be able to perform a clean install from the definitions in Unicode text format to the required formats and character sets.

      The FreeBSD Forums

      Links
      URL: http://forums.freebsd.org/

      Contact: FreeBSD Forums Admins <forum-admins@FreeBSD.org>
      Contact: FreeBSD Forums Moderators <forum-moderators@FreeBSD.org>

      Since their public launch in November 2008, the FreeBSD Forums (the most recent addition to the user community and support channels for the FreeBSD Operating System) have witnessed a healthy and steady growth.

      The user population is now at over 8,000 registered users, who have participated in over 6,000 topics, containing over 40,000 posts in total. The sign-up rate hovers between 50-100 each week. The total number of visitors (including 'guests') is hard to gauge but is likely to be a substantial multiple of the registered userbase.

      New topics and posts are actively 'pushed out' to search engines. This in turn makes the Forums show up in search results more and more often, making it a valuable and very accessible source of information for the FreeBSD community.

      One of the contributing factors to the Forums' success is their 'BSD-style' approach when it comes to administration and moderation. The Forums have a strong and unified identity, they are neatly divided into sub-forums (like 'Networking', 'Installing & Upgrading', etc.), very actively moderated, spam-free, and with a core group of very active and helpful members, dispensing many combined decades' worth of knowledge to starting, intermediate and professional users of FreeBSD.

      We expect the Forums to be, and to remain, a central hub in FreeBSD's community and support efforts.


      News Home | Status Home