%articles.ent; %release; ]>
&os; &release.current; Release Notes The &os; Project $FreeBSD$ 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 The &os; Documentation Project &tm-attrib.freebsd; &tm-attrib.ibm; &tm-attrib.ieee; &tm-attrib.intel; &tm-attrib.microsoft; &tm-attrib.sparc; &tm-attrib.general; The release notes for &os; &release.current; contain a summary of the changes made to the &os; base system on the &release.branch; development line. This document lists applicable security advisories that were issued since the last release, as well as significant changes to the &os; kernel and userland. Some brief remarks on upgrading are also presented. Introduction This document contains the release notes for &os; &release.current;. It describes recently added, changed, or deleted features of &os;. It also provides some notes on upgrading from previous versions of &os;. The &release.type; distribution to which these release notes apply represents the latest point along the &release.branch; development branch since &release.branch; was created. Information regarding pre-built, binary &release.type; distributions along this branch can be found at . ]]> The &release.type; distribution to which these release notes apply represents a point along the &release.branch; development branch between &release.prev; and the future &release.next;. Information regarding pre-built, binary &release.type; distributions along this branch can be found at . ]]> This distribution of &os; &release.current; is a &release.type; distribution. It can be found at or any of its mirrors. More information on obtaining this (or other) &release.type; distributions of &os; can be found in the Obtaining &os; appendix to the &os; Handbook. ]]> All users are encouraged to consult the release errata before installing &os;. 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 &os; &release.current; can be found on the &os; Web site. What's New This section describes the most user-visible new or changed features in &os; since &release.prev;. Typical release note items document recent security advisories issued after &release.prev;, 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 &os; between releases; this document focuses primarily on security advisories, user-visible changes, and major architectural improvements. Security Advisories Problems described in the following security advisories have been fixed. For more information, consult the individual advisories available from . Advisory Date Topic SA-09:01.lukemftpd 07 January 2009 Cross-site request forgery in &man.lukemftpd.8; SA-09:02.openssl 07 January 2009 OpenSSL incorrectly checks for malformed signatures SA-09:03.ntpd 13 January 2009 ntpd cryptographic signature bypass SA-09:04.bind 13 January 2009 BIND DNSSEC incorrect checks for malformed signatures SA-09:05.telnetd 16 February 2009 telnetd code execution vulnerability SA-09:06.ktimer 23 March 2009 Local privilege escalation SA-09:07.libc 04 April 2009 Information leak in &man.db.3; SA-09:08.openssl 22 April 2009 Remotely exploitable crash in OpenSSL Kernel Changes The &os; DTrace subsystem now supports a probe for process execution. The &os; kernel virtual address space has been increased to 6GB and the ceiling on the kmem map size to 3.6GB. Note that the ceiling as a fraction of the kernel map size rather than an absolute quantity. The &man.jail.8; subsystem has been updated. Changes include: Multiple addresses of both IPv4 and IPv6 per jail has been supported. It is even possible to have jails without an IP address at all, which basically gives one a chrooted environment with restricted process view and no networking. SCTP (&man.sctp.4;) with IPv6 in jails has been supported. Specific CPU binding by using &man.cpuset.1; has been supported. A show jails subcommand in &man.ddb.8; has been added. Compatibility support which permits 32bit jail binaries to be used on 64bit systems to manage jails has been added. Note that both version numbers of jail and prison in the &man.jail.8; have been updated for the new features. The &man.jail.8; subsystem now supports SCTP(&man.sctp.4;) with IPv6 in jails. The &man.kld.4; now supports installing 32-bit system call to the &os; system call translation layer from kernel modules. The &man.ktr.4; now supports a new KTR tracepoint in the KTR_CALLOUT class to note when a callout routine finishes executing. The &os; 32-bit system call translation layer now supports installing 32-bit system calls for VFS_AIO. The &os; virtual memory subsystem now supports Superpages. The Superpages is a feature in modern CPUs that enables each entry in the TLB (translation lookaside buffer) to map a large physical memory region into a virtual address space. This provides possible memory savings for applications that share large amounts of memory between the address spaces and performance improvements due to fewer TLB misses. Boot Loader Changes The &man.boot.8; now supports 4-byte volume ID that certain versions of &windows; put into the MBR and invoking PXE by pressing F6 key on some supported BIOSes. The &man.loader.8; is now able to obtain DHCP options via &man.kenv.2; variables in the case of network boot. A bug in the &man.loader.8; has been fixed. Now the following line works as expected: loader_conf_files="foo bar ${variable}" Hardware Support The &man.acpi.4; subsystem now supports a &man.sysctl.8; variable debug.batt.batt_sleep_ms. On some laptops with smart batteries, enabling battery monitoring software causes keystrokes from &man.atkbd.4; to be lost. This sysctl variable adds a delay in millisecond to the status checking code as a workaround. The &man.acpi.asus.4; driver now supports Asus A8Sr notebooks. The &man.cpuctl.4; driver, which provides a special device /dev/cpuctl as an interface to the system CPU and functionality to retrieve CPUID information, read/write machine specific registers (MSR) and perform CPU firmware updates. The &man.cpufreq.4; driver now supports a hw.est.msr_info loader tunable. When this set to 1, it attempts to build a simple list containing just the high and low frequencies if it cannot obtain a frequency list from either ACPI or the static tables. This is disabled by default. CPU frequency change notifiers are now disabled when the TSC is P-state invariant. Also, a new loader tunable kern.timecounter.invariant_tsc has been added to force this behavior by setting it to non-zero. Multimedia Support The &man.agp.4; now supports Intel G4X series graphics chipsets. The DRM, a kernel module named Direct Rendering Manager that gives direct hardware access to DRI clients, has been updated. Support for AMD/ATI r500 and IGP based chips, XGI V3XE/V5/V8, and Intel i915 chipsets has been improved. The snd_au88x0(4) driver for Aureal Vortex 1/2/Advantage PCI has been removed because this was broken for a long time. The &man.snd.hda.4; driver has been updated. Changes include: multiple codec per HDA bus, multiple functional groups per codec, multiple audio devices per functional group, digital (SPDIF/HDMI) audio input/output, suspend/resume, and part of multichannel audio. Note that due to added HDMI audio and logical audio devices support, updated driver often provides several PCM devices. In some cases it can make system default audio device no longer corresponding to the users's habitual audio connectors. In such cases the default device can be specified in audio application setup or defined globally via hw.snd.default_unit sysctl as described in the &man.sound.4; manual page. Network Interface Support The &man.axe.4; driver has been improved in performance by eliminating extra context switch and now supports Apple USB Ethernet adapter. The ciphy(4) driver now supports Vitesse VSC8211 PHY. The &man.fxp.4; driver has been improved. Changes include: The checksum offload feature can be controlled by &man.ifconfig.8;. Rx checksum offload support for 82559 or later controllers has been added. TSO (TCP Segmentation Offload) support for 82550 and 82551 controllers has been added. WoL (Wake on LAN) support for 82550, 82551, 82558, and 82559-based controllers has been added. Note that ICH based controllers are treated as 82559, and 82557, earlier revision of 82558, and 82559ER have no WOL capability. VLAN hardware tag insertion/stripping support and Tx/Rx checksum offload for VLAN frames support have been added. Note that the VLAN hardware assistance is available only on 82550 or 82551-based controllers. A bug in &man.igb.4; driver which prevents a tunable hw.igb.ave_latency from working has been fixed. The &man.jme.4; driver now supports newer JMicron JMC250/JMC260 revisions. The &man.msk.4; driver has been improved. An issue which makes it hang up in a certain condition has been fixed. The &man.mxge.4; driver now supports some newer revisions and 10GBASE-LRM and 10GBASE-Twinax* media types. The &man.re.4; driver has been improved. It now detects the link status. The &man.rl.4; driver has been improved. It now detects the link status and a bug which prevents it from working on systems with more than 4GB memory has been fixed. Network Protocols IPv4 source address selection for unbound sockets has been implemented as follows: If we found a route, use the address corresponding to the outgoing interface. Otherwise we assume the foreign address is reachable on a directly connected network and try to find a corresponding interface to take the source address from. As a last resort use the default jail address. This also changes the semantics of selecting the IP for processes within a &man.jail.8; as it now uses the same logic as outside the &man.jail.8;. The &man.jail.8; subsystem now supports start with a specific route FIB. The &man.ng.netflow.4; Netgraph node now supports ability to generate egress netflow instead or in addition to ingress. A NGM_NETFLOW_SETCONFIG control message has been added to control the new functionality. The &man.tap.4;, Ethernet tunnel software network interface now supports TAPGIFNAME character device ioctl. This is a convenient shortcut to obtain network interface name using file descriptor for character device. The domains list for handling the list of supported domains in the &man.unix.4; (UNIX domain protocol family) subsystem is now MPSAFE. Disks and Storage The &man.ata.4; driver now supports Marvell PATA M88SX6121. An issue in the &man.gvinum.8; with access permissions to underlying disks used by a gvinum plex has been fixed. If the plex is a raid5 plex and is being written to, parity data might have to be read from the underlying disks, requiring them to be opened for reading as well as writing. The &man.mmc.4; and &man.mmcsd.4; driver now support MMC and SDHC cards, high speed timing, wide bus, and multiblock transfers. The &man.sdhci.4; driver has been added. This supports PCI devices with class 8 and subclass 5 according to SD Host Controller Specification. The &man.sdhci.4; driver now supports kernel dumping and a sysctl variable hw.sdhci.debug for debug level. The &man.mmc.4; &man.mmcsd.4;, and &man.sdhci.4; driver are now included as a kernel module. File Systems The semantics of &man.acl.3; extended access control list has been changed as follows: The inode modification time (mtime) is not updated when extended attribute are added, modified, or removed. The inode access time (atime) is not updated when extended attribute are queried. The shared vnode locking for pathname lookups in &man.VFS.9; subsystem has been improved. This is disabled by default. Setting a sysctl variable vfs.lookup_shared to 1 enables it for better performance. Note that the LOOKUP_SHARED equivalent to the sysctl variable kernel option has been removed. Userland Changes A bug in the &man.atacontrol.8; utility which prevents it from working when /usr is not mounted or invoked from /rescue, has been fixed. The &man.config.8; utility now supports multiple makeoption lines. The &man.dirname.1; utility now accepts multiple arguments in the same way that &man.basename.1; does. The &man.du.1; utility now supports an flag. When specified, the &man.du.1; counts a file with multiple hard links as multiple different files. The &man.dumpfs.8; utility now supports an flag, which causes it to list all free fragments in the file system by fragment (block) number. This new mode does the necessary arithmetic to generate absolute fragment numbers rather than than the cg-relative numbers printed in the default mode. If is passed once, contiguous fragment ranges are collapsed into an X-Y format as free block lists are currently printed in regular dumpfs output, but if specified twice, all block numbers are printed individually, allowing both compact and more script-friendly representation. The &man.fetch.1; utility now supports an flag which supports If-Modified-Since HTTP request. The &man.fsck.8; utility now supports a flag for damaged recovery mode, which will enable certain aggressive operations that can make &man.fsck.8; to survive with file systems that has very serious data damage, which is an useful last resort when on disk data damage is very serious and causes &man.fsck.8; to crash otherwise. A bug in the &man.ipfw.8; utility which displays extra messages for a NAT rule even when a flag is specified. The &man.ln.1; utility now supports a flag to check if the source file actually exists. When the flag is specified and the file does not exist, the &man.ln.1; will put a warning message. The &man.netstat.1; utility now reports &man.unix.4; sockets listen queue statistics when an flag. A bug in the &man.netstat.1; utility has been fixed. It crashed with the following options in the previous versions: &prompt.user; netstat -m -N foo A bug in the &man.netstat.1; utility has been fixed. The now works in the icmp6 section as expected. The &man.pciconf.8; utility now supports a flag, which lists any base address registers (BAR) that are assigned resources for each device. The &man.powerd.8; program has been improved. Changes include reasonable CPU load estimation on SMP systems and a new mode named as hiadaptive for AC-powered systems which rises frequency twice faster, drops it 4 times slower, prefers twice lower CPU load and has additional delay before leaving the highest frequency after the period of maximum load. The &man.stat.1; utility now displays an octal representation of suid, sgid and sticky bits when an flag is specified. The &man.strndup.3; function has been added. The &man.wc.1; utility now supports an flag to output the number of characters in the longest input line. A bug in the &man.rpc.yppasswdd.8; program which leaves a zombie process when a password or default shell is changed has been fixed. <filename>/etc/rc.d</filename> Scripts Contributed Software ISC BIND has been updated to version 9.4.3-P2. The timezone database has been updated from the tzdata2008h release to the tzdata2009f release. Ports/Packages Collection Infrastructure A bug in the &man.pkg.create.1; which prevents the flag from working has been fixed. Release Engineering and Integration The supported version of the GNOME desktop environment (x11/gnome2) has been updated from 2.22 to 2.26. The supported version of the KDE desktop environment has been updated from 3.5.10 (x11/kde3) to 4.2.2 (x11/kde4). Documentation Upgrading from previous releases of &os; Beginning with &os; 6.2-RELEASE, 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 or SMP kernels distributed as a part of an official &os; release. The &man.freebsd-update.8; utility requires that the host being upgraded have Internet connectivity. An older form of binary upgrade is supported through the Upgrade option from the main &man.sysinstall.8; menu on CDROM distribution media. This type of binary upgrade may be useful on non-&arch.i386;, non-&arch.amd64; machines or on systems with no Internet connectivity. Source-based upgrades (those based on recompiling the &os; base system from source code) from previous versions are supported, according to the instructions in /usr/src/UPDATING. Upgrading &os; should, of course, only be attempted after backing up all data and configuration files.