article.xml revision 143182
1<articleinfo>
2  <title>&os;/&arch; &release.current; Release Notes</title>
3
4  <corpauthor>The &os; Project</corpauthor>
5
6  <pubdate>$FreeBSD: head/release/doc/en_US.ISO8859-1/relnotes/article.sgml 143182 2005-03-06 19:08:51Z hrs $</pubdate>
7
8  <copyright>
9    <year>2000</year>
10    <year>2001</year>
11    <year>2002</year>
12    <year>2003</year>
13    <year>2004</year>
14    <year>2005</year>
15    <holder role="mailto:doc@FreeBSD.org">The &os; Documentation Project</holder>
16  </copyright>
17
18  <abstract>
19    <para>The release notes for &os; &release.current; contain a summary
20      of the changes made to the &os; base system since &release.branch; is created.
21      This document lists applicable security advisories that were issued since
22      the last release, as well as significant changes to the &os;
23      kernel and userland.
24      Some brief remarks on upgrading are also presented.</para>
25  </abstract>
26</articleinfo>
27
28<sect1 id="intro">
29  <title>Introduction</title>
30
31  <para>This document contains the release notes for &os;
32    &release.current; on the &arch.print; hardware platform.  It
33    describes recently added, changed, or deleted features of &os;.
34    It also provides some notes on upgrading
35    from previous versions of &os;.</para>
36
37<![ %release.type.current [
38
39  <para>The &release.type; distribution to which these release notes
40    apply represents the latest point along the &release.branch; development
41    branch since &release.branch; is created.  Some pre-built, binary
42    &release.type; distributions along this branch
43    can be found at <ulink url="&release.url;"></ulink>.</para>
44
45]]>
46
47<![ %release.type.snapshot [
48
49  <para>The &release.type; distribution to which these release notes
50    apply represents a point along the &release.branch; development
51    branch between &release.prev; and the future &release.next;.  Some
52    pre-built, binary &release.type; distributions along this branch
53    can be found at <ulink url="&release.url;"></ulink>.</para>
54
55]]>
56
57<![ %release.type.release [
58
59  <para>This distribution of &os; &release.current; is a
60    &release.type; distribution.  It can be found at <ulink
61    url="&release.url;"></ulink> or any of its mirrors.  More
62    information on obtaining this (or other) &release.type;
63    distributions of &os; can be found in the <ulink
64    url="&url.books.handbook;/mirrors.html"><quote>Obtaining
65    &os;</quote> appendix</ulink> to the <ulink
66    url="&url.books.handbook;/">&os;
67    Handbook</ulink>.</para>
68
69]]>
70
71  <para>All users are encouraged to consult the release errata before
72    installing &os;.  The errata document is updated with
73    <quote>late-breaking</quote> information discovered late in the
74    release cycle or after the release.  Typically, it contains
75    information on known bugs, security advisories, and corrections to
76    documentation.  An up-to-date copy of the errata for &os;
77    &release.current; can be found on the &os; Web site.</para>
78
79</sect1>
80
81<sect1 id="new">
82  <title>What's New</title>
83
84  <para>This section describes
85    the most user-visible new or changed features in &os;
86    since &release.prev;.
87    In general, changes described here are unique to the &release.branch;
88    branch unless specifically marked as &merged; features.
89  </para>
90
91  <para>Typical release note items
92    document recent security advisories issued after
93    &release.prev.historic;,
94    new drivers or hardware support, new commands or options,
95    major bug fixes, or contributed software upgrades.  They may also
96    list changes to major ports/packages or release engineering
97    practices.  Clearly the release notes cannot list every single
98    change made to &os; between releases; this document focuses
99    primarily on security advisories, user-visible changes, and major
100    architectural improvements.</para>
101
102  <sect2 id="security">
103    <title>Security Advisories</title>
104
105    <para>A bug in the &man.fetch.1; utility, which allows
106      a malicious HTTP server to cause arbitrary portions of the client's
107      memory to be overwritten, has been fixed.
108      For more information, see security advisory
109      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:16.fetch.asc">FreeBSD-SA-04:16.fetch</ulink>.
110      &merged;</para>
111
112    <para>A bug in &man.procfs.5; and &man.linprocfs.5;
113      which could allow a malicious local user to read parts of kernel
114      memory or perform a local
115      denial of service attack by causing a system panic,
116      has been fixed.
117      For more information, see security advisory
118      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-04:17.procfs.asc">FreeBSD-SA-04:17.procfs</ulink>.
119      &merged;</para>
120
121  </sect2>
122
123  <sect2 id="kernel">
124    <title>Kernel Changes</title>
125
126    <para arch="i386">Support for 80386 processors (the
127      <literal>I386_CPU</literal> kernel configuration option) has
128      been removed.  Users running this class of CPU should use &os;
129      5.<replaceable>X</replaceable> or earlier.</para>
130
131    <para arch="alpha,amd64,i386">The loader tunable <varname>debug.mpsafevm</varname>
132      has been enabled by default.  &merged;</para>
133
134    <para>&man.memguard.9;, a kernel memory allocator designed to help detect
135      <quote>tamper-after-free</quote> scenarios, has been added.
136      This must be explicitly enabled via <literal>options
137      DEBUG_MEMGUARD</literal>, plus small kernel modifications.  It
138      is generally intended for use by kernel developers.</para>
139
140    <para>A number of bugs have been fixed in the ULE
141      scheduler. &merged;</para>
142
143    <para>Fine-grained locking to allow much of the VFS stack to run
144      without the Giant lock has been added.  This is enabled by default
145      on the alpha, amd64, and i386 architectures, and can be disabled
146      by setting the loader tunable (and sysctl variable)
147      <varname>debug.mpsafevfs</varname> to
148      <literal>0</literal>.</para>
149
150    <para arch="i386">A bug in Inter-Processor Interrupt (IPI)
151      handling, which could cause SMP systems to crash under heavy
152      load, has been fixed.  More details are contained in errata note
153      <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-05:03.ipi.asc">FreeBSD-EN-05:03.ipi</ulink>.
154      &merged;</para>
155
156    <para>System V IPC objects (message queues, semaphores, and shared
157      memory) now have support for Mandatory Access Control policies,
158      notably &man.mac.biba.4;, &man.mac.mls.4;, &man.mac.stub.4;, and
159      &man.mac.test.4;.</para>
160
161    <para arch="i386">Memory allocation for legacy PCI bridges has
162      been limited to the top 32MB of RAM.  Many older, legacy bridges
163      only allow allocation from this range.  This change only applies
164      to devices which do not have their memory assigned by the BIOS.
165      This change fixes the <quote>bad Vcc</quote> error of CardBus
166      bridges (&man.pccbb.4;). &merged;</para>
167
168    <para>The &man.sysctl.3; MIBs beginning with <quote>debug</quote>
169      now require the kernel option <literal>options SYSCTL_DEBUG</literal>.
170      This option is disabled by default.</para>
171
172    <para>The generic &man.tty.4; driver interface has been added
173      and many device drivers including
174      &man.cx.4; (<literal>{tty,cua}x</literal>),
175      &man.cy.4; (<literal>{tty,cua}c</literal>),
176      &man.digi.4; (<literal>{tty,cua}D</literal>),
177      &man.rc.4; (<literal>{tty,cua}m</literal>),
178      &man.rp.4; (<literal>{tty,cua}R</literal>),
179      &man.sab.4; (<literal>{tty,cua}z</literal>),
180      &man.si.4; (<literal>{tty,cua}A</literal>),
181      &man.sio.4; (<literal>{tty,cua}d</literal>),
182      sx (<literal>{tty,cua}G</literal>),
183      &man.uart.4; (<literal>{tty,cua}u</literal>),
184      &man.ubser.4; (<literal>{tty,cua}y</literal>),
185      &man.ucom.4; (<literal>{tty,cua}U</literal>), and
186      &man.ucycom.4; (<literal>{tty,cua}y</literal>)
187      have been rewritten to use it.  Note that <filename>/etc/remote</filename>
188      and <filename>/etc/ttys</filename> have been updated as well.</para>
189
190    <para>The &man.vkbd.4; driver has been added.  This driver
191      provides a software loopback mechanism that can implement
192      a virtual AT keyboard similar to what the &man.pty.4; driver
193      does for terminals.</para>
194
195    <!-- Above this line, sort kernel changes by manpage/keyword-->
196
197    <para arch="i386,amd64,ia64">The default <varname>HZ</varname>
198      parameter (which controls various kernel timers) has been
199      increased from <literal>100</literal> to <literal>1000</literal>
200      on the i386 and ia64.  It has been reduced from
201      <literal>1024</literal> to <literal>1000</literal> on the amd64
202      to reduce synchronization effects with other system
203      clocks.</para>
204
205    <para>The maximum length of shell commands has changed from 128
206      bytes to <varname>PAGE_SIZE</varname>.  By default, this value
207      is either 4KB (i386, pc98, amd64, and powerpc) or 8KB (sparc64
208      and ia64).  As a result, compatibility modules need to be
209      rebuilt to stay synchronized with data structure changes in the
210      kernel.</para>
211
212    <sect3 id="boot">
213      <title>Boot Loader Changes</title>
214
215      <para arch="i386">A serial console-capable version of
216	<filename>boot0</filename> has been added.  It can be written
217	to a disk using &man.boot0cfg.8; and specifying
218	<filename>/boot/boot0sio</filename> as the argument to the
219	<option>-b</option> option.</para>
220
221      <para arch="i386"><filename>cdboot</filename> now works around a
222	BIOS problem observed on some systems when booting from USB
223	CDROM drives.</para>
224
225      <para>The <command>autoboot</command> loader command
226	now supports the prompt parameter.</para>
227
228      <para>A loader menu option to set <varname>hint.atkbd.0.flags=0x1</varname>
229	has been added.  This setting allows USB keyboards to work
230	if no PS/2 keyboard is attached.</para>
231
232      <para>The beastie boot menu has been disabled by default.</para>
233
234      <!-- Above this line, order boot loader changes by keyword-->
235
236    </sect3>
237
238    <sect3 id="proc">
239      <title>Hardware Support</title>
240
241      <para arch="i386,amd64">The &man.acpi.4; driver now turns
242	the ACPI and PCI devices off or to a lower power state
243	in suspend, and back on again in resume.
244	This behavior can be disabled by
245	setting <varname>debug.acpi.do_powerstate</varname> and
246	<varname>hw.pci.do_powerstate</varname> sysctls.</para>
247
248      <para arch="i386,amd64">The acpi_ibm driver for IBM laptops
249	has been added.</para>
250
251      <para arch="i386,amd64">The acpi_snc driver,
252	which supports the Sony Notebook Controller on various
253	Sony laptops has been added.</para>
254
255      <para arch="sparc64">The &man.auxio.4; driver has been to drive
256	some auxiliary I/O functions found on various SBus/EBus
257	&ultrasparc; models. &merged;</para>
258
259      <para>A framework for flexible processor speed control has been
260	added.  It provides methods for various drivers to control CPU
261	power utilization by adjusting the processor speed.  More
262	details can be found in the &man.cpufreq.4; manual page. &merged;
263	Currently supported drivers include acpi_perf (ACPI CPU
264	performance states), ichss (Intel SpeedStep for ICH), and
265	acpi_throttle (ACPI CPU throttling).</para>
266
267      <para arch="i386">Support for the OLDCARD subsystem has
268	been removed.  The NEWCARD system is now used for all PCCARD
269	device support.</para>
270
271      <para>The pcii driver has been added to support GPIB-PCIIA IEEE-488
272	cards.</para>
273
274      <para>The &man.atkbd.4; driver now supports a <literal>0x8</literal>
275	(bit 3) flag to disable testing the keyboard port during
276	the device probe as this can cause hangs on some machines,
277	specifically Compaq R3000Z series amd64 laptops.</para>
278
279      <para arch="i386">The &man.pbio.4; driver,
280	which supports direct access to
281	the Intel 8255A programmable peripheral interface (PPI)
282	chip running in mode 0 (simple I/O) has been added.</para>
283
284      <para>The &man.psm.4; driver now has improved support for
285	Synaptics Touchpad users.  It now has better tracking of
286	slow-speed movement and support for various extra
287	buttons and dials.  These features can be tuned with the
288	<varname>hw.psm.synaptics.<replaceable>*</replaceable></varname>
289	hierarchy of sysctl variables.</para>
290
291      <para arch="sparc64">The rtc driver has been added to support
292	the MC146818-compatible clock found on some &ultrasparc; II
293	and III models. &merged;</para>
294
295      <para arch="sparc64">The &man.uart.4; driver is now enabled in
296	the <filename>GENERIC</filename> kernel, and is now the
297	default driver for serial ports.  The ofw_console,
298	&man.sab.4;, and zs drivers are now disabled in the
299	<filename>GENERIC</filename> kernel. &merged;</para>
300
301      <para>The &man.uplcom.4; driver now supports handling of the
302	<literal>CTS</literal> signal.</para>
303
304      <para>The &man.ehci.4; driver has been improved.</para>
305
306      <sect4 id="mm">
307	<title>Multimedia Support</title>
308
309	<para arch="sparc64">The &man.snd.audiocs.4; driver has been
310	  added to support the Crystal Semiconductor CS4231 audio
311	  controller found on &ultrasparc;
312	  workstations. &merged;</para>
313
314	<para>The &man.uaudio.4; driver now has some added
315	  functionality, including volume control on more inputs and
316	  recording capability on some devices.</para>
317
318      </sect4>
319
320      <sect4 id="net-if">
321	<title>Network Interface Support</title>
322
323	<para>The &man.ath.4; driver has been updated to split the
324	  transmit rate control algorithm into a separate module.
325	  Either <literal>device ath_rate_onoe</literal> or
326	  <literal>device ath_rate_amrr</literal> must be included in
327	  the kernel configuration when using the &man.ath.4;
328	  driver.</para>
329
330	<para>The &man.bge.4; driver now supports the &man.altq.4;
331	  framework.</para>
332
333	<para>The &man.cp.4; driver is now MPSAFE. &merged;</para>
334
335	<para>The &man.ctau.4; driver is now MPSAFE. &merged;</para>
336
337	<para>The &man.cx.4; driver is now MPSAFE. &merged;</para>
338
339	<para>The &man.dc.4; driver now supports the &man.altq.4; framework.</para>
340
341	<para>The &man.ed.4; driver now supports the &man.altq.4;
342	  framework.  &merged;</para>
343
344	<para>In the &man.em.4; driver, hardware support for VLAN
345	  tagging is now disabled by default due to some interactions
346	  between this feature and promiscuous mode. &merged;</para>
347
348	<para>Ethernet flow control is now disabled by default in the
349	  &man.fxp.4; driver, to prevent problems with a system panics
350	  or is left in the kernel debugger. &merged;</para>
351
352	<para>The gx(4) driver has been removed because
353	  it is no longer maintained actively and
354	  the &man.em.4; supports all of the supported hardware.</para>
355
356	<para>The &man.hme.4; driver is now MPSAFE. &merged;</para>
357
358	<para arch="amd64">The &man.ndis.4; device driver wrapper now
359	  supports &windows;/x86-64 binaries on amd64
360	  systems. &merged;</para>
361
362	<para>The &man.sf.4; driver now has support for device polling
363	  and &man.altq.4;. &merged;</para>
364
365	<para>Several programming errors in the &man.sk.4; driver have
366	  been corrected.  These bugs were particular to SMP systems, and
367	  could cause panics, page faults, aborted SSH connections, or
368	  corrupted file transfers.  More details can be found in
369	  errata note
370	  <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-05:02.sk.asc">FreeBSD-EN-05:02.sk</ulink>.
371	  &merged;</para>
372
373	<para>The &man.sk.4; driver now has support for &man.altq.4;.
374	  This driver also now supports jumbo frames on Yukon-based
375	  interfaces. &merged;</para>
376
377	<para>The &man.vge.4; driver now has support for device polling
378	  (&man.polling.4;).</para>
379
380	<para>Support for 802.11 devices in the &man.wlan.4; framework has been
381	  greatly overhauled.  In addition to architectural changes,
382	  it includes completed 802.11g, WPA, 802.11i, 802.1x,
383	  WME/WMM, AP-side power-saving, and plugin frameworks for
384	  cryptography modules, authenticators, and access control.
385	  Note in particular that WEP now requires the
386	  <filename>wlan_wep</filename> module to be loaded (or
387	  compiled) into the kernel.</para>
388
389      </sect4>
390    </sect3>
391
392    <sect3 id="net-proto">
393      <title>Network Protocols</title>
394
395      <para>The MTU feedback in IPv6 has been disabled when the sender writes
396	data that must be fragmented.  &merged;</para>
397
398      <para>The Common Address Redundancy Protocol (CARP) has
399	been implemented.  CARP comes from OpenBSD and allows
400	multiple hosts to share an IP address, providing
401	high availability and load balancing.
402	For more information, see the &man.carp.4; manual page.</para>
403
404      <para>The &man.ipfw.4; <literal>IPDIVERT</literal> option is now
405	available as a kernel loadable module.
406	If this module is not loaded, &man.ipfw.4; will refuse to
407	install <literal>divert</literal> rules and &man.natd.8;
408	will return the error message <quote>protocol not supported</quote>.</para>
409
410      <para>The &man.ipfw.4; can work with
411	<varname>debug.mpsafenet</varname>=<literal>1</literal>
412	(this tunable is <literal>1</literal> by default)
413	when the <literal>gid</literal>, <literal>jail</literal>,
414	and/or <literal>uid</literal> rule options are used.</para>
415
416      <para>&man.ipfw.8; now supports classification and tagging
417	of &man.altq.4; packets via a divert socket,
418	as well as the TCP data length.</para>
419
420      <para>The &man.ipfw.8; <literal>ipfw fwd</literal> rule now supports
421	the full packet destination manipulation when the kernel option
422	<literal>options IPFIREWALL_FORWARD_EXTENDED</literal> is specified
423	in addition to <literal>options IPFIRWALL_FORWARD</literal>.
424	This kernel option disables all restrictions to ensure proper
425	behavior for locally generated packets and allows redirection of
426	packets destined to locally configured IP addresses.
427	Note that &man.ipfw.8; rules have to be carefully crafted to
428	make sure that things like PMTU discovery do not break. &merged;</para>
429
430      <para>&man.ipnat.8; now allows redirect rules to
431	work for non-TCP/UDP packets.  &merged;</para>
432
433      <para>Ongoing work is reducing the use of the Giant lock by the
434	network protocol stack and improving the locking
435	strategies.</para>
436
437      <para>A new &man.ng.netflow.4; NetGraph node allows a router
438	running &os; to do NetFlow version 5 exports. &merged;</para>
439
440      <para>The &man.sppp.4; driver now includes Frame Relay
441	support. &merged;</para>
442
443      <para>The &man.sppp.4; driver is now MPSAFE.</para>
444
445      <para>A bug in TCP that sometimes caused RST packets to
446	be ignored if the receive window was zero bytes has been
447	fixed. &merged;</para>
448
449      <para>Several bugs in the TCP SACK implementation have been
450	fixed. &merged;</para>
451
452      <para>RFC 1644 T/TCP support has been removed.  This is because
453	the design is based on a weak security model that can easily
454	permit denial-of-service attacks.  This TCP
455	extension has been considered a defective one in
456	a recent Internet Draft.</para>
457
458      <para>The KAME IPv4 IPsec implementation integrated
459	in &os; now supports TCP-MD5.  &merged;</para>
460
461      <para>Random ephemeral port number allocation has led to some
462        problems with port reuse at high connection rates.  This
463        feature is now disabled during periods of high connection
464        rates; whenever new connections are created faster than
465        <varname>net.inet.ip.portrange.randomcps</varname> per second,
466        port number randomization is disabled for the next
467        <varname>net.inet.ip.portrange.randomtime</varname>
468        seconds.  The default values for these two sysctl variables
469        are <literal>10</literal> and <literal>45</literal>,
470        respectively. &merged;</para>
471
472      <para>Fine-grained locking has been applied to many of the data
473	structures in the IPX/SPX protocol stack.  While not fully
474	MPSAFE at this point, it is generally safe to use IPX/SPX
475	without the Giant lock (in other words, the
476	<varname>debug.mpsafenet</varname> sysctl variable may be set
477	to <literal>1</literal>).</para>
478
479    </sect3>
480
481    <sect3 id="disks">
482      <title>Disks and Storage</title>
483
484      <para>The &man.amr.4; driver is now safe for use on systems
485	using &man.pae.4;. &merged;</para>
486
487      <para>The SHSEC GEOM class has been added.  It provides for the
488	sharing of a secret between multiple GEOM providers.  All of
489	these providers must be present in order to reveal the
490	secret.  This feature is controlled by the &man.gshsec.8;
491	utility. &merged;</para>
492
493      <para>The &man.hptmv.4; driver, which supports the HighPoint
494	RocketRAID 182x series, has been added. &merged;</para>
495
496      <para>The &man.matcd.4; driver has been removed. &merged;</para>
497
498      <para>The default SCSI boot-time probe delay in the
499	<filename>GENERIC</filename> kernel has been reduced from
500	fifteen seconds to five seconds.</para>
501
502      <para>The old vinum(4) subsystem has been removed
503	in favor of the new &man.geom.4;-based version.</para>
504
505      <para arch="pc98">The &man.wd.4; driver has been removed.  The
506	&man.ata.4; driver has been found to work well enough on the
507	pc98 platform that there is no need for the older &man.wd.4;
508	driver.</para>
509
510      <para>Information about newly-mounted cd9660 file systems (such
511	as the presence of Rockridge extensions) is now only printed
512	if the kernel was booted in verbose mode.  This change was
513	made to reduce the amount of (generally unnecessary) kernel
514	log messages. &merged;</para>
515
516    </sect3>
517
518    <sect3 id="fs">
519      <title>File Systems</title>
520
521      <para>The autofs(9) file system and the userland library
522	&man.libautofs.3; have been added.</para>
523
524      <para>Recomputing the summary information for
525	<quote>dirty</quote> UFS and UFS2 file systems is no longer
526	done at mount time, but is now done by background
527	&man.fsck.8;.  This change improves the startup speed when
528	mounting large file systems after a crash.  The prior behavior
529	can be restored by setting the
530	<varname>vfs.ffs.compute_summary_at_mount</varname> sysctl
531	variable to a non-zero value.  &merged;</para>
532
533      <para>A kernel panic in the NFS server has been fixed.  More
534	details can be found in errata note
535	<ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ERRATA/notices/FreeBSD-EN-05:01.nfs.asc">FreeBSD-EN-05:01.nfs</ulink>.
536	&merged;</para>
537
538    </sect3>
539
540    <sect3>
541      <title>Contributed Software</title>
542
543      <para><application>ACPI-CA</application> has been updated from
544	20040527 to 20041119. &merged;</para>
545
546    </sect3>
547  </sect2>
548
549  <sect2 id="userland">
550    <title>Userland Changes</title>
551
552    <para>The &man.burncd.8; utility now allows commands (such as
553      <command>eject</command>) to take place after fixating a
554      disk.</para>
555
556    <para>The &man.ftpd.8; program now uses <literal>212</literal>
557      and <literal>213</literal> status code for directory
558      and file status correctly (<literal>211</literal> is used in
559      the previous versions).  This behavior is described in RFC 959.
560      &merged;</para>
561
562    <para>The <literal>create</literal> command of the &man.gpt.8;
563      utility now supports a <option>-f</option> command-line flag to
564      force creation of a GPT even when there is an MBR record on a
565      disk. &merged;</para>
566
567    <para>The gvinum(8) utility now supports
568      <command>checkparity</command>,
569      <command>rebuildparity</command>, and
570      <command>setstate</command>
571      subcommands.  &merged;</para>
572
573    <para>The &man.ifconfig.8; utility has been restructured.  It is
574      now more modular and flexible with respect to supporting
575      interface-specific functionality.  The 802.11 support has been
576      updated to support recent changes to the 802.11 subsystem and
577      drivers.</para>
578
579    <para>Support for abbreviated forms of a number of &man.ipfw.8;
580      options has been deprecated.  Warnings are printed to stderr
581      indicating the correct full form when one of these abbreviations
582      is detected.</para>
583
584    <para>The on-disk format of <literal>LC_CTYPE</literal> files has
585      been changed to be machine-independent.</para>
586
587    <para>The <filename>libarchive</filename> library (as well as the
588      &man.tar.1; command that uses it) now has support for reading ISO
589      images (with optional RockRidge extensions) and ZIP archives
590      (with <literal>deflate</literal> and <literal>none</literal>
591      compression). &merged;</para>
592
593    <para>The <filename>libgpib</filename> library has been added to
594      give userland access to GPIB devices (using the the pcii driver)
595      via the
596      <function>ib<replaceable>foo</replaceable></function>
597      API.</para>
598
599    <para>The default stack sizes in <filename>libpthread</filename>
600      and <filename>libc_r</filename> have been increased.  On 32-bit
601      platforms, the main thread receives a 2MB stack size by default,
602      with other threads receiving a 1MB stack size by default.  On
603      64-bit platforms, the default stack sizes are 4MB and 2MB
604      respectively.</para>
605
606    <para>The <filename>libxpg4</filename> library has been removed
607      because all of its functionality was long ago merged into
608      <filename>libc</filename>.
609      All binaries linked with <filename>libxpg4</filename>
610      must be recompiled or use &man.libmap.conf.5;.
611      Note that the &os; base system has no such binaries.</para>
612
613    <para>A number of new functions have been implemented in the
614      &man.math.3; library.  These include &man.ceill.3;,
615      &man.floorl.3;, &man.ilogbl.3;, &man.fma.3; and variants,
616      &man.lrint.3; and variants, and &man.lround.3; and
617      variants. &merged;</para>
618
619    <para>The &man.mknod.8; utility is now deprecated.
620      Device nodes have been managed by the &man.devfs.5; device file
621      system since &os; 5.0.</para>
622
623    <para arch="i386">The &man.mkuzip.8; utility, which
624      compresses file system images for use with
625      <literal>GEOM_UZIP</literal> &man.geom.4; module,
626      has been added. &merged;</para>
627
628    <para>The &man.moused.8; daemon now supports <quote>virtual
629      scrolling</quote>, in which mouse motions made while holding
630      down the middle mouse button are interpreted as scrolling.  This
631      feature is enabled with the <option>-V</option>
632      flag. &merged;</para>
633
634    <para>A separate directory has been added for &man.named.8;
635      dynamic zones which is owned by the <username>bind</username> user
636      (for creation of the zone journal file).
637      For more detail, see an example dynamic zone in the sample
638      &man.named.conf.5;.  &merged;</para>
639
640    <para>The &man.ncal.1; utility now supports a <option>-m</option>
641      flag to generate a calendar for a specified month in the current
642      year. &merged;</para>
643
644    <para>The &man.newfs.8; utility now supports a <option>-n</option>
645      flag to suppress the creation of a <filename>.snap</filename>
646      directory on new file systems.  This feature is intended for use
647      on memory or vnode file systems that will not require snapshot
648      support. &merged;</para>
649
650    <para>The &man.newfs.8; utility now emits a warning when creating
651      a UFS or UFS2 file system that cannot support snapshots.  This
652      situation can occur in the case of very large file systems with
653      small block sizes. &merged;</para>
654
655    <para>The &man.newsyslog.8; utility now supports
656	a <option>-d</option> option to specify an alternate root for log files
657	similar to <varname>DESTDIR</varname> in the BSD make process.
658	This only affects log file paths, not configuration file (<option>-f</option>)
659	or archive directory (<option>-a</option>) paths.</para>
660
661    <para>The &man.newsyslog.8; utility now supports a
662      <option>-N</option> that causes it not to rotate any files.</para>
663
664    <para>The <literal>NO_NIS</literal> compile-time knob for userland
665      has been added.  As its name implies, enabling this
666      <filename>Makefile</filename> variable will cause NIS support to
667      be excluded from various programs and will cause the NIS
668      utilities to not be built. &merged;</para>
669
670    <para>For years, &os; has used <filename>Makefile</filename>
671      variables of the form
672      <varname>NO<replaceable>FOO</replaceable></varname> and
673      <varname>NO_<replaceable>FOO</replaceable></varname>.  For
674      consistency, those variables using the former naming convention
675      have been converted to the
676      <varname>NO_<replaceable>FOO</replaceable></varname> form.  The
677      file <filename>/usr/share/mk/bsd.compat.mk</filename> has a
678      complete list of these variables; it also implements some
679      temporary backward compatibility for the old names.</para>
680
681    <para>The &man.periodic.8; security output now supports to display
682      information about blocked packet counts by &man.pf.4;.  &merged;</para>
683
684    <para>The &man.ppp.8; program now implements an
685      <option>echo</option> parameter, which allows LCP ECHOs to be
686      enabled independently of LQR reports.  Older versions of
687      &man.ppp.8; would revert to LCP ECHO mode on negotiation
688      failure.  It is now necessary to specify <command>enable
689      echo</command> to get this behavior. &merged;</para>
690
691    <para><option>disable NAS-IP-Address</option> and
692      <option>disable NAS-Identifier</option> options
693      which support pre-RFC 2865 RADIUS servers
694      have been added to the &man.ppp.8; program.</para>
695
696    <para>Two bugs in the &man.pppd.8; program has been fixed.
697      They may result in an incorrect CBCP response
698      which violates the Microsoft PPP Callback Control Protocol
699      section 3.2.  &merged;</para>
700
701    <para>The &man.rescue.8; utilities in the <filename>/rescue</filename>
702      directory now includes &man.bsdtar.1; instead of GNU tar.</para>
703
704    <para>The &man.rm.1; utility now supports an <option>-I</option>
705      option that asks for confirmation (once) if recursively
706      removing directories or if more than 3 files are listed in the
707      command line. &merged;</para>
708
709    <para>The &man.rm.1; utility now suppresses diagnostic messages
710      when it attempts to remove a non-existent directory
711      with the <option>-r</option> and <option>-f</option> options
712      specified.  This behavior is required by
713      Version 3 of the Single UNIX Specification (SUSv3).</para>
714
715    <para>An &man.rpmatch.3; library function has been added to check
716      a string for being an affirmative or negative response in the
717      current locale.</para>
718
719    <para>The &man.rtld.1; dynamic linker now supports specifying
720      library replacements via the <varname>LD_LIBMAP</varname>
721      environment variable.  This variable will override the entries
722      in &man.libmap.conf.5;. &merged;</para>
723
724    <para>The rune(3) non-standard multibyte and wide character support
725      interface has been removed.</para>
726
727    <para>The &man.strftime.3; function now supports some GNU extensions
728      such as <literal>-</literal> (no padding),
729      <literal>_</literal> (use space as padding),
730      and <literal>0</literal> (zero padding). &merged;</para>
731
732    <para>The &man.syslog.3; function is now thread-safe. &merged;</para>
733
734    <para>The &man.syslogd.8; utility now opens an additional domain
735      socket (<filename>/var/run/logpriv</filename> by default),
736      with <literal>0600</literal> permissions to be used
737      by privileged programs.  This prevents privileged
738      programs from locking when the domain sockets
739      run out of buffer space due to a
740      local denial-of-service attack. &merged;</para>
741
742    <para>The &man.systat.1; <option>-netstat</option> display is now
743      IPv6-aware. &merged;</para>
744
745    <para>The <option>-f</option> option of &man.tail.1; utility
746      now supports more than one file at a time. &merged;</para>
747
748    <para>The &man.telnet.1; and &man.telnetd.8; programs now support
749      the <option>-S</option> option for specifying a numeric TOS
750      byte.</para>
751
752    <para>Prepending a <literal>+</literal> character to port numbers
753      passed to &man.telnet.1; program will now disable option
754      negotiation and allow the transfer of characters with the high
755      bit set.  This feature is intended to support the fairly common
756      use of &man.telnet.1; as a protocol tester.</para>
757
758    <para>The &man.tcpdrop.8; command, which closes a selected TCP
759      connection, has been added.  It was obtained from
760      OpenBSD.</para>
761
762    <para>&man.whois.1; now supports
763      a <option>-k</option> flag
764      for querying <hostid role="fqdn">whois.krnic.net</hostid>
765      (the National Internet Development Agency of Korea),
766      which holds details of IP address allocations within
767      Korea. &merged;</para>
768
769    <para>The <option>-I</option> option of the &man.xargs.1; command
770      has been changed to confirm IEEE Std 1003.1-2004.
771      The standard requires that the constructed
772      arguments cannot grow larger than 255 bytes.</para>
773
774    <sect3 id="rc-scripts">
775      <title><filename>/etc/rc.d</filename> Scripts</title>
776
777      <para>&man.rc.conf.5; now supports changes of network interface names
778	at boot time. &merged;  For example:</para>
779
780      <programlisting>ifconfig_fxp0_name="net0"
781ifconfig_net0="inet 10.0.0.1/16"</programlisting>
782
783      <para>The <filename>rc.d/moused</filename> script now
784	starts/stops/checks a specific device when
785	the device name is given as the second argument to the script:</para>
786
787      <screen>&prompt.root; /etc/rc.d/moused start ums0</screen>
788
789      <para>To use different &man.rc.conf.5; knobs with different
790	mice, use the device name as part of the knob.
791	For example, if the mouse device is <filename>/dev/ums0</filename>
792	the following lines can be used:</para>
793
794	<programlisting>moused_ums0_enable=yes
795moused_ums0_flags="-z 4"
796moused_ums0_port="/dev/ums0"</programlisting>
797
798      <para>&man.rc.conf.5; now supports the <varname>tmpmfs_flags</varname>
799	and <varname>varmfs_flags</varname> variables.
800	These can be used to pass extra options to the &man.mdmfs.8; utility,
801	to customize the finer details of the &man.md.4; file system creation,
802	such as to turn on/off softupdates, to specify a default owner
803	for the file system, and so on. &merged;</para>
804
805    </sect3>
806  </sect2>
807
808  <sect2 id="contrib">
809    <title>Contributed Software</title>
810
811    <para><application>FILE</application> has been updated from 4.10
812      to 4.12.</para>
813
814    <para><application>GNU readline</application> has been updated from
815      version 4.3 to version 5.0.</para>
816
817    <para><application>Heimdal</application> has been updated from
818      0.6.1 to 0.6.3. &merged;</para>
819
820    <para><application>lukemftp</application> has been updated from a
821      26 April 2004 snapshot from OpenBSD's sources to a snapshot as
822      of 19 February 2005.</para>
823
824    <para>A snapshot of <application>netcat</application> from OpenBSD
825      as of 4 February 2005 has been added.  More information can be
826      found in the &man.nc.1; manual page. &merged;</para>
827
828    <para><application>OpenPAM</application> has been updated from the
829      Eelgrass release to the Feterita release.</para>
830
831    <para><application>OpenSSH</application> has been updated from 3.8p1
832      to 3.9p1.</para>
833
834    <para><application>OpenSSL</application> has been updated from
835      0.9.7d to 0.9.7e. &merged;</para>
836
837    <para><application>sendmail</application> has been updated from
838      version 8.13.1 to version 8.13.3. &merged;</para>
839
840    <para>The timezone database has been updated from the
841      <application>tzdata2004e</application> release to the
842      <application>tzdata2004g</application> release. &merged;</para>
843
844  </sect2>
845
846  <sect2 id="ports">
847    <title>Ports/Packages Collection Infrastructure</title>
848
849    <para>The &man.pkg.version.1; utility now supports a
850      <option>-q</option> flag to suppress the output of the port
851      version comparison characters <literal>&lt;</literal>,
852      <literal>=</literal>, and <literal>&gt;</literal>.</para>
853
854    <para>The
855      <filename>ports/INDEX<replaceable>*</replaceable></filename>
856      files, which kept an index of all of the entries in the ports
857      collection, have been removed from the CVS repository. &merged;
858      These files were generated only infrequently, and therefore were
859      usually out-of-date and inaccurate.  Users requiring an index
860      file (such as for use by programs such as &man.portupgrade.1;)
861      have two alternatives for obtaining a copy:</para>
862
863    <itemizedlist>
864      <listitem>
865	<para>Build an index file based on the current ports tree by
866	  running <command>make index</command> from the top of the
867	  <filename>ports/</filename> tree.</para>
868      </listitem>
869
870      <listitem>
871	<para>Fetch an index file over the network by running
872	  <command>make fetchindex</command> from the top of the
873	  <filename>ports/</filename> tree.  This index file will
874	  (typically) be accurate to within a day.</para>
875      </listitem>
876    </itemizedlist>
877
878  </sect2>
879
880  <sect2 id="releng">
881    <title>Release Engineering and Integration</title>
882
883    <para>In prior &os; releases, the <filename>disc1</filename>
884      CD-ROM (or ISO image) was a bootable installation disk
885      containing the base system, ports tree, and common packages.
886      The <filename>disc2</filename> CD-ROM (or ISO image) was a
887      bootable <quote>fix it</quote> disk with a live filesystem, to
888      be used for making emergency repairs.  This layout has now
889      changed.  For all architectures except ia64, the
890      <filename>disc1</filename> image now contains the base system
891      distribution files, ports tree, and the live filesystem, making
892      it suitable for both an initial installation and repair
893      purposes.  (On the ia64, the live filesystem is on a separate
894      disk due to its size.)  Packages appear on separate
895      disks. &merged;</para>
896
897    <para>The supported version of the
898      <application>GNOME</application> desktop environment has been
899      updated from 2.6.2 to 2.8.3. &merged;
900
901      <note>
902	<para>Users of older versions of the
903	  <application>GNOME</application> desktop
904	  (<filename role="package">x11/gnome2</filename>)
905	  must take particular care in upgrading.  Simply upgrading it
906	  from the &os; Ports Collection with &man.portupgrade.1;
907	  (<filename role="package">sysutils/portupgrade</filename>)
908	  will cause serious problems.
909	  <application>GNOME</application> desktop users should read
910	  the instructions carefully at
911	  <ulink url="&url.base;/gnome/docs/faq28.html"></ulink>
912	  and use the
913	  <ulink url="&url.base;/gnome/gnome_upgrade.sh"><filename>gnome_upgrade.sh</filename></ulink>
914	  script to properly upgrade to
915	  <application>GNOME</application> 2.8.3.</para>
916
917	<para>For casual users of the various
918	  <application>GNOME</application> libraries,
919	  &man.portupgrade.1; should be sufficient.</para> </note>
920      </para>
921
922    <para>The supported version of the <application>KDE</application>
923      desktop environment has been updated from 3.3.0 to
924      3.3.2. &merged;</para>
925
926    <para>The supported version of <application>Xorg</application> has
927      been updated from 6.7.0 to 6.8.1. &merged;</para>
928
929  </sect2>
930
931  <sect2 id="doc">
932    <title>Documentation</title>
933
934    <para>Manual pages in the base system have received a number of
935      cleanups, both for content and presentation.  Cross-references
936      are more correct and consistent, standard section headings are
937      now used throughout, and markup has been cleaned up.</para>
938
939  </sect2>
940</sect1>
941
942<sect1 id="upgrade">
943  <title>Upgrading from previous releases of &os;</title>
944
945  <para>Source upgrades to &os; &release.current; are only supported
946    from &os; 5.3-RELEASE or later.  Users of older systems wanting to
947    upgrade &release.current; will need to update to &os; 5.3 or newer
948    first, then to &os; &release.current;.</para>
949
950  <important>
951    <para>Upgrading &os; should, of course, only be attempted after
952      backing up <emphasis>all</emphasis> data and configuration
953      files.</para>
954  </important>
955</sect1>
956