%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 &man.ddb.8; kernel debugger now supports a show mount subcommand. 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. Note that the current implementation allows the superuser inside of the jail to change the CPU bindings specified. This behavior will be fixed in the next release. A &man.jail.8; can start with a specific route FIB now. A show jails subcommand in &man.ddb.8; has been added. Compatibility support which permits 32-bit jail binaries to be used on 64-bit 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.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. Types of variables used to track amount of allocated System V shared memory have been changed from int to size_t. This makes it possible to use more than 2 GB shared memory segments on 64-bit architectures. Please note the new BUGS section in &man.shmctl.2; and /usr/src/UPDATING for limitations of this temporal solution. 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 that enables each entry in the TLB (translation lookaside buffer) to map a large physical memory region into a virtual address space in modern CPUs. 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 from network boot via &man.kenv.2; variables. 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 &os; now supports Ultra SPARC III (Cheetah) family. 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. Support for the AltiVec, a floating point and integer SIMD instruction set has been added. The &man.cpuctl.4; driver, which provides a special device /dev/cpuctl as an interface to the system CPU has been added. The functionality includes to retrieve CPUID information, read/write machine specific registers (MSR), and perform CPU firmware updates. The &man.cpufreq.4; driver now supports an hw.est.msr_info loader tunable. When this is 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. The &man.atkbd.4; now disables the interrupt handler which is called from the keyboard callback function when polled mode is enabled. This fixes duplicated/missing characters problem at mountroot on multi CPU systems while &man.kbdmux.4; is enabled. In the &man.pci.4; subsystem INTx is now disabled when MSI/MSIX is enabled. This change fixes interrupt storm related issues. The schizo(4) driver for Schizo Fireplane/Safari to PCI 2.1 and Tomatillo JBus to PCI 2.2 bridges has been added. The &man.sched.ule.4; scheduler now supports a loader tunable machdep.hyperthreading_enabled as the &man.sched.4bsd.4; does. Note that it cannot be modified at run-time. A &man.sysctl.3; leaf node has a flag to tag itself as MPSAFE now. 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, r600, r700, and IGP based chips, XGI V3XE/V5/V8, and Intel i915 chipsets has been improved. A new loader tunable hw.drm.msi which controls if DRM uses MSI or not. This is set to 1 (enabled) by default. 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.ae.4; driver now supports WoL (Wake on LAN). The &man.ale.4; driver is now included in the GENERIC kernel. The &man.ath.hal.4;, Atheros Hardware Access Layer, has been updated to the open source version. The &man.axe.4; driver has been improved in performance by eliminating extra context switches and now supports Apple USB Ethernet adapter. The &man.bce.4; driver's firmware has been updated to the latest version (4.6.X). The ciphy(4) driver now supports Vitesse VSC8211 PHY. The &man.cxgb.4; driver has been updated to the firmware revision 4.7 and now supports hardware MAC statistics. The &man.fxp.4; driver has been improved. Changes include: The checksum offload feature can be controlled by &man.ifconfig.8; now. 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 loader tunable hw.igb.ave_latency from working has been fixed. The &man.ixgbe.4; driver has been updated to version 1.7.4. 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. A hardware MAC statistics support has been added and users can get the information via sysctl variables named dev.msk.N.stats. The &man.mxge.4; driver now supports some newer revisions and 10GBASE-LRM and 10GBASE-Twinax media types. The &man.nfe.4; driver now supports hardware MAC statistics. The &man.re.4; driver has been improved. It now detects the link status. A new loader tunable hw.re.prefer_iomap to disable memory register mapping. This tunable is 0 for all controllers except RTL8169SC family. 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. A bug in &man.sis.4; on VLAN tagged frame handling has been fixed. The &man.txp.4; driver now works on all supported architecture. Also, &man.altq.4; support, WoL support, checksum offload when VLAN enabled, better link state change handling, a new sysctl variable dev.txp.N.stats for MAC statistics have been added. A new sysctl variable dev.txp.N.process_limit to control how many received frames should be served in Rx handler (set to 64 by default and valid ranges are 16 to 128 in unit of frames) has been added. The firmware has been updated to the latest version. 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 TCP MD5 Signature Option (RFC 2385) for IPv6 has been implemented in the same way it has been implemented for IPv4. The &man.ng.netflow.4; Netgraph node now supports ability to generate egress netflow instead or in addition to ingress. An 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 &man.tap.4; now supports SIOCSIFMTU ioctl to set a higher MTU than 1500 (ETHERMTU). This allows &man.tap.4; device to be added to a bridge, which requires all interface members to have the same MTU, with an interface configured for jumbo frames. 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. The &man.ata.4; driver now recognizes nForce MCP67 and MCP73 SATA controllers as AHCI. The &man.ataraid.4; driver now has an initial support for DDF metadata found on Adaptec HostRAID controllers. Note that spares and rebuilds are not supported yet. The &man.cam.4; SCSI subsystem now supports a sysctl variable kern.cam.cd.retry_count. This controls the number of retries for the CD media. When trying to read scratched or damaged CDs and DVDs, the default mechanism is sub-optimal, and programs like ddrescue do much better if you turn off the retries entirely since their algorithms do it by themselves. This value is set to 4 (for a total 5 attempts) by default. Setting to 0 turns off all retry attempts. A bug in the &man.ciss.4; driver which caused low max device openings count that has led to poor performance has been fixed. The &man.glabel.8; GEOM class now supports a new UFS-based label called ufsid that can be used to reference UFS-carrying devices by the unique file system ID. This file system ID is automatically generated and detected when &man.glabel.8; GEOM class is enabled. An example of this new label is: /dev/ufsid/48e69c8b5c8e1b43. The benefit of using GEOM labels in general is to avoid problems of device renaming when shifting drives or controllers. The &man.gjournal.8; GEOM class now supports the root file system. Previously, an unclean shutdown would make it impossible to mount root file system at boot. The &man.gpart.8; utility has been updated. The APM scheme now supports Tivo Series 1 partitions (read only), a new EBR scheme to support Extended Boot Records has been added, the BSD scheme now support bootcode, and bugs in PC98 and VTOC8 scheme have been fixed. 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.hptmv.4; driver has been updated to version 1.16 from the vendor. 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.mpt.4; driver is now in the GENERIC kernel. 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.twa.4; driver now supports 64-bit DMA. 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 &os; NFS file system now supports a sysctl variable vfs.nfs.prime_access_cache to determine whether or not nfs_getattr() will use an ACCESS RPC to prime the access cache instead of a simple GETATTR RPC. This is because on many NFS servers an ACCESS RPC is much more expensive to service than a GETATTR RPC for files in an NFSv3 mount. The sysctl variable is enabled by default to maintain the previous behavior. The &os; UDF file system now supports a fifo. 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 kernel option equivalent to the sysctl variable 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.btpand.8; daemon from NetBSD has been added. This daemon provides support for Bluetooth Network Access Point (NAP), Group Ad-hoc Network (GN) and Personal Area Network User (PANU) profiles. The &man.ncal.1; utility now supports multibyte characters. The &man.config.8; utility now supports multiple makeoption lines. The &man.csup.1; utility now supports CVSMode to fetch a complete CVS repository. Note that the rsync transfer mode is currently disabled. 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.du.1; utility now supports an flag to display the apparent size instead of the disk usage. This can be helpful when operating on compressed volumes or sparse files. The &man.du.1; utility now supports a option to calculate block counts in blocksize byte blocks. This is different from the or options or setting BLOCKSIZE and gives an estimate of how much space the examined file hierarchy would require on a file system with the given blocksize. Unless in mode, blocksize is rounded up to the next multiple of 512. 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 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. 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 1.1 request. If specified it will cause the file to be downloaded only if it is more recent than the mtime of the file. Also, libfetch now accepts the mtime in the url structure and a flag to indicate when this behavior is desired. The &man.fsck.8; utility now supports a flag for check clean mode. This checks if the file system was dismounted cleanly first and then skip file system checks if true. Otherwise it does full checks. 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. This is an useful last resort when on disk data damage is very serious and causes &man.fsck.8; to crash otherwise. The &man.getaddrinfo.3; function now supports SCTP. 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.make.1; utility now supports a flag to print the input graph only, not executing any commands. The output is the same as . When combined with , only the built-in rules of make are displayed. The &man.make.1; utility now supports a flag to cause file banners not to be generated in addition to the same effect of a flag when a option is specified. The &man.make.1; utility now supports .MAKE.JOB.PREFIX variable. If and are specified, it outputs for each target is prefixed with a token --- target --- the first part of which can be controlled via the variable. The &man.make.1; utility now supports .MAKE.PID and .MAKE.PPID variable. These are set to process ID of the &man.make.1; process and one of its parent process respectively. The &man.makefs.8; utility to create a file system image from a directory tree has been added. The &man.mergemaster.8; utility now supports an option to automatically install files that differ only in version control ID strings. The &man.mount.8; utility now supports an option to force it to use the specified program to mount the file system instead of calling &man.nmount.2; directly. This is useful when you want to use third party programs such as FUSE, for example. The &man.netstat.1; utility now reports &man.unix.4; sockets listen queue statistics when an flag is specified. 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. 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). 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.