]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - release/doc/en_US.ISO8859-1/relnotes/common/new.sgml
New release note: whereis -a
[FreeBSD/FreeBSD.git] / release / doc / en_US.ISO8859-1 / relnotes / common / new.sgml
1 <articleinfo>
2   <title>&os;/&arch; &release.current; Release Notes</title>
3
4   <corpauthor>The FreeBSD Project</corpauthor>
5
6   <pubdate>$FreeBSD$</pubdate>
7
8   <copyright>
9     <year>2000</year>
10     <year>2001</year>
11     <year>2002</year>
12     <holder role="mailto:doc@FreeBSD.org">The FreeBSD Documentation Project</holder>
13   </copyright>
14
15   <abstract>
16     <para>The release notes for &os; &release.current; contain a summary
17       of
18 <![ %include.historic; [
19       the changes made to the &os; base system since &release.prev;.
20 ]]>
21 <![ %no.include.historic; [
22       recent changes made to the &os; base system on the &release.branch;
23       development branch.
24 ]]>
25       Both changes for kernel and userland are listed, as well as
26       applicable security advisories that were issued since the last
27       release.  Some brief remarks on upgrading are also presented.</para>
28   </abstract>
29 </articleinfo>
30
31 <sect1>
32   <title>Introduction</title>
33
34   <para>This document contains the release notes for &os;
35     &release.current; on the &arch.print; hardware platform.  It
36     describes recently added, changed, or deleted features of &os;.
37     It also provides some notes on upgrading
38     from previous versions of &os;.</para>
39
40 <![ %release.type.snapshot [
41
42   <para>The &release.type; distribution to which these release notes
43     apply represents a point along the &release.branch; development
44     branch between &release.prev; and the future &release.next;.  Some
45     pre-built, binary &release.type; distributions along this branch
46     can be found at <ulink url="&release.url;"></ulink>.</para>
47
48 ]]>
49
50 <![ %release.type.release [
51
52   <para>This distribution of &os; &release.current; is a
53     &release.type; distribution.  It can be found at <ulink
54     url="&release.url;"></ulink> or any of its mirrors.  More
55     information on obtaining this (or other) &release.type;
56     distributions of &os; can be found in the <ulink
57     url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mirrors.html"><quote>Obtaining
58     FreeBSD</quote> appendix</ulink> to the <ulink
59     url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/">FreeBSD
60     Handbook</ulink>.</para>
61
62 ]]>
63 </sect1>
64
65 <sect1>
66   <title>What's New</title>
67
68   <para>This section describes
69 <![ %include.historic; [
70       the most user-visible new or changed features in &os;
71       since &release.prev;.
72       In general, changes described here are unique to the &release.branch;
73       branch unless specifically marked as &merged; features.
74 ]]>
75 <![ %no.include.historic; [
76       many of the user-visible new or changed features in &os;
77       since &release.prev;.  It includes items that are unique to the
78       &release.branch; branch, as well as some features that may have been
79       recently merged to
80       other branches (after &os; &release.prev.historic;).  The later
81       items are marked as &merged;.
82 ]]>
83   </para>
84
85   <para>Typical release note items
86     document new drivers or hardware support, new commands or options,
87     major bugfixes, or contributed software upgrades.  Applicable security
88     advisories issued after &release.prev; are also listed.</para>
89
90   <para>Many additional changes were made to &os; that are not listed
91     here for lack of space.  For example, documentation was corrected
92     and improved, minor bugs were fixed, insecure coding practices
93     were audited and corrected, and source code was cleaned up.</para>
94
95   <sect2 id="kernel">
96     <title>Kernel Changes</title>
97
98     <para>&man.acct.2; has been changed to open the accounting file in
99       append mode, so that &man.accton.8; can be used to enable
100       accounting to an append-only file. &merged;</para>
101
102     <para arch="i386" role="historic">The &man.amdpm.4; driver has been added to
103       provide access to the system monitoring functions of the AMD 756
104       chipset. &merged;</para>
105
106     <para role="historic">The &man.agp.4; driver for AGP devices has been
107       added. &merged;</para>
108
109     <para>A new &man.ddb.4; command <command>show pcpu</command> lists
110       some of the per-CPU data.</para>
111
112     <para role="historic">Two new &man.ddb.4; commands, <command>hwatch</command> and
113       <command>dhwatch</command>, have been introduced.  Analogous to
114       <command>watch</command> and <command>dwatch</command>, they
115       install hardware watchpoints (as opposed to software
116       watchpoints) if supported by the architecture. &merged;</para>
117
118     <para>&man.devfs.5;, which allows entries in the
119       <filename>/dev</filename> directory to be built automatically
120       and supports more flexible attachment of devices, has been
121       largely reworked.  &man.devfs.5; is now enabled by default and
122       can be disabled by the <literal>NODEVFS</literal> kernel
123       option.</para>
124
125     <para>The &man.devfs.5; <quote>rule</quote> subsystem has been introduced.  DEVFS rules
126       permit the administrator to define certain properties of new device
127       nodes before they become visible to the userland.  Both static (e.g.
128       <filename>/dev/speaker</filename>) and dynamic (e.g.
129       <filename>/dev/bpf*</filename>, some removable devices) nodes are
130       supported.  Each &man.devfs.5; mount may have a different ruleset assigned to
131       it, permitting different policies to be implemented for things like
132       jails.  Rules and rulesets are manipulated with the &man.devfs.8;
133       utility.</para>
134
135     <para>The dgm driver has been removed in favor of the digi driver.</para>
136
137     <para>A new digi driver has been added to support PCI Xr-based and
138       ISA Xem Digiboard cards.  A new &man.digictl.8; program is
139       (mainly) used to re-initialize cards that have external port
140       modules attached such as the PC/Xem.</para>
141
142     <para>An &man.eaccess.2; system call has been added, similar to
143       &man.access.2; except that the former uses effective credentials
144       rather than real credentials.</para>
145
146     <para arch="sparc64">Support has been added for EBus-based
147       devices.</para>
148
149     <para arch="i386" role="historic">The &man.ichsmb.4; driver for the Intel 82801AA
150       (ICH) SMBus controller and compatibles has been
151       added. &merged;</para>
152
153     <para>Each &man.jail.2; environment can now run under its own
154       securelevel.</para>
155
156     <para>The tunable sysctl variables for &man.jail.2; have moved
157       from <varname>jail.*</varname> to the
158       <varname>security.*</varname> hierarchy.  Other security-related
159       sysctl variables have moved from <varname>kern.security.*</varname> to
160       <varname>security.*</varname>.</para>
161
162     <para role="historic">The <varname>kern.maxvnodes</varname> limit now properly
163       limits the number of vnodes in use.  Previously only vnodes with
164       no cached pages could be freed; this could allow the number of
165       vnodes to grow without limit on large-memory machines accessing
166       many small files.  A <literal>vnlru</literal> kernel thread
167       helps to flush and reuse vnodes. &merged;</para>
168
169     <para role="historic">The kernel message buffer is now accessible by the
170       (machine-independent) <varname>kern.msgbuf</varname> sysctl
171       variable; &man.dmesg.8; no longer needs to be SGID
172       <groupname>kmem</groupname>. &merged;</para>
173
174     <para>The kernel environment is now dynamic, and can be changed
175       via the new &man.kenv.2; system call.</para>
176
177     <para role="historic">The &man.kqueue.2; event notification facility was added to
178       the &os; kernel.  This is a new interface which is able to
179       replace &man.poll.2;/&man.select.2;, offering improved
180       performance, as well as the ability to report many different
181       types of events.  Support for monitoring changes in sockets,
182       pipes, fifos, and files are present, as well as for signals and
183       processes. &merged;</para>
184
185     <para arch="i386,pc98" role="historic">A new <varname>KVA_SPACE</varname> kernel option
186       can be used to reconfigure the size of the kernel virtual
187       address space. &merged;</para>
188
189     <para>The labpc(4) driver has been removed due to
190       <quote>bitrot</quote>.</para>
191
192     <para>The loader and kernel linker now look for files named
193       <filename>linker.hints</filename> in each directory with KLDs
194       for a module name and version to KLD filename mapping.  The new
195       &man.kldxref.8; utility is used to generate these files.</para>
196
197     <para role="historic">Linux emulation now supports the kernel functionality
198       required by the
199       <filename role="package">emulators/linux_base</filename>
200       (RedHat 7.X emulation) port. &merged;</para>
201
202     <para role="historic">Linux emulation now requires <literal>options
203       SYSVSEM</literal> in the kernel configuration. &merged;</para>
204
205     <para>&man.lomac.4;, a Low-Watermark Mandatory Access Control
206       security facility, has been added as a kernel module.  It
207       provides a drop-in security mechanism in addition to the
208       traditional UID-based security facilities, requiring no
209       additional configuration from the administrator.  Work on this
210       feature was sponsored by DARPA and NAI Labs.</para>
211
212     <para arch="ia64">Machine Check Architecture (MCA) records are now
213       collected at boot time and made available through the
214       <varname>hw.mca.*</varname> sysctl variables.</para>
215
216     <para role="historic">The <varname>maxusers</varname> kernel configuration
217       parameter is now a boot-time tunable variable.  The kernel
218       parameters derived from <varname>maxusers</varname> are now also
219       tunables and can be overridden at boot-time.  The
220       <varname>hz</varname> parameter is also now a
221       tunable. &merged;</para>
222
223     <para role="historic">Specifying a value of <literal>0</literal> for the
224       <varname>maxusers</varname> kernel configuration parameter will
225       now cause an appropriate value to be calculated at boot-time
226       (between 32 and 384, depending on the amount of memory present).
227       This value is now the default for all
228       <filename>GENERIC</filename> kernels. &merged;</para>
229
230     <para arch="alpha" role="historic">A <varname>MAXMEM</varname> kernel option,
231       along with the <varname>hw.physmem</varname> loader tunable, can
232       be used to artificially reduce the memory size of a machine for
233       testing (or other purposes). &merged;</para>
234
235     <para role="historic">The kernel configuration parameters
236       <varname>MAXTSIZ</varname>, <varname>DFLDSIZ</varname>,
237       <varname>MAXDSIZ</varname>, <varname>DFLSSIZ</varname>,
238       <varname>MAXSSIZ</varname>, and <varname>SGROWSIZ</varname> are
239       all loader tunables (<varname>kern.maxtsiz</varname>,
240       <varname>kern.maxdfldsiz</varname>, etc.). &merged;</para>
241
242     <para>&man.mutex.9; profiling code has been added, enabled by the
243       <literal>MUTEX_PROFILING</literal> kernel configuration option.
244       It enables the <varname>debug.mutex.prof.*</varname> hierarchy
245       of sysctl variables.</para>
246
247     <para arch="i386,pc98" role="historic">The <literal>NCPU</literal>,
248       <literal>NAPIC</literal>, <literal>NBUS</literal>, and
249       <literal>NINTR</literal> kernel configuration options,
250       for configuring SMP kernels, have been removed.
251       <literal>NCPU</literal> is now set to a maximum of 16,
252       and the other, aforementioned options are now
253       dynamic. &merged;</para>
254
255     <para role="historic">A &man.nmdm.4; null-modem terminal driver has been added.
256       &merged;</para>
257
258     <para role="historic">The <literal>O_DIRECT</literal> flag has been added to
259       &man.open.2; and &man.fcntl.2;.  Specifying this flag for open
260       files will attempt to minimize the cache effects of reading and
261       writing. &merged;</para>
262
263     <para role="historic">An &man.orm.4; device has been added to claim the option
264       ROMs in the ISA memory I/O space, to prevent other drivers from
265       mistakenly assigning addresses that conflict with these
266       ROMs. &merged;</para>
267
268     <para arch="i386,pc98">PECOFF (Win32 Execution file format) support has
269       been added.</para>
270
271     <para arch="pc98" role="historic">The pmc driver, which supports the power
272       management controller of the NEC PC-98NOTE, has been
273       added. &merged;</para>
274
275     <para role="historic">POSIX.1b Shared Memory Objects are now supported.  The
276       implementation uses regular files, but automatically enables the
277       MAP_NOSYNC flag when they are &man.mmap.2;-ed. &merged;</para>
278
279     <para role="historic">Replaced the <literal>PQ_*CACHE</literal> options with a
280       single <literal>PQ_CACHESIZE</literal> option to be set to the
281       cache size in kilobytes.  The old options are still supported
282       for backwards compatibility. &merged;</para>
283
284     <para arch="i386" role="historic">The &man.puc.4; (PCI <quote>Universal</quote>
285       Communications) driver has been added, to help connect PCI-based
286       serial ports to the &man.sio.4; driver. &merged;</para>
287
288     <para>The &man.random.4; device has been rewritten to use the
289       <application>Yarrow</application> algorithm.  It harvests
290       entropy from a variety of interrupt sources, including the
291       console devices, Ethernet and point-to-point network interfaces,
292       and mass-storage devices.  Entropy from the &man.random.4;
293       device is now periodically saved to files in
294       <filename>/var/db/entropy</filename>, as well as at shutdown
295       time.  The semantics of <filename>/dev/random</filename> have
296       changed; it never blocks waiting for entropy bits but generates
297       a stream of pseudo-random data and now behaves exactly as
298       <filename>/dev/urandom</filename>.</para>
299
300     <para>A new kernel option, <literal>options REGRESSION</literal>,
301       enables interfaces and functionality intended for use during
302       correctness and regression testing.</para>
303
304     <para><literal>RLIMIT_VMEM</literal> support has been added.  This
305       feature defines a new resource limit that covers a process's
306       entire virtual memory space, including &man.mmap.2; space.  This
307       limit can be configured in &man.login.conf.5; via the new
308       <varname>vmemoryuse</varname> variable. &merged;</para>
309
310     <para arch="sparc64">Support has been added for SBus-based
311       devices.</para>
312
313     <para arch="sparc64">The se driver, which supports the Siemens
314       SAB82532 serial chip found on many newer Sparc Ultra machines,
315       has been added.</para>
316
317     <para role="historic">The &man.snp.4; device is no longer static and can now be
318       compiled as a module. &merged;</para>
319
320     <para arch="i386" role="historic">The &man.spic.4; driver, which provides access
321       to the Jog Dial device on some Sony laptops, has been
322       added.  &man.moused.8; support for this device has also been
323       added. &merged;</para>
324
325     <para>The &man.syscons.4; driver now supports keyboard-controlled
326       pasting, by default bound to
327       <keycap>Shift</keycap>-<keycap>Insert</keycap>.</para>
328
329     <para role="historic">Support for USB devices was added to the
330       <filename>GENERIC</filename> kernel and to the installation
331       programs to support USB devices out of the box.  Note that SRM
332       does not support USB devices at the moment, so you must still
333       use an AT keyboard if you are not using a serial
334       console. &merged;</para>
335
336     <para>The uaudio driver, for USB audio devices, has been
337       added.</para>
338
339     <para arch="i386,pc98" role="historic">The &man.umodem.4; driver for USB modems
340       has been added. Support is provided for the 3Com 5605 and
341       Metricom Ricochet GS wireless USB modems. &merged;</para>
342
343     <para arch="i386,pc98" role="historic">The &man.uscanner.4; driver for basic USB
344       scanner support using SANE has been added. See <ulink
345       url="http://www.mostang.com/sane/">the SANE home page</ulink>
346       for supported scanners. The HP ScanJet 4100C, 5200C and 6300C
347       are known to be working. &merged;</para>
348
349     <para>The &man.ucom.4; device driver has been added, to support USB
350       modems, serial devices, and other programs that need to look
351       like a tty.  The related &man.uplcom.4; and &man.uvscom.4; drivers provide specific
352       support for the Prolific PL-2303 serial adapter and the SUNTAC
353       Slipper U VS-10U, respectively. &merged;</para>
354
355     <para>To increase security, the <literal>UCONSOLE</literal> kernel
356       configuration option has been removed.</para>
357
358     <para arch="i386,pc98">The UserConfig boot-time kernel configuration
359       feature, usually used to enable, disable, or configure ISA
360       devices, has been removed.  Its functionality has been replaced
361       by the kernel hints file in
362       <filename>/boot/device.hints</filename>.</para>
363
364     <para>The <literal>USER_LDT</literal> kernel option is now
365       activated by default.</para>
366
367     <para>The uvisor driver for connecting Handspring Visors via USB
368       has been added. &merged;</para>
369
370     <para>A VESA S3 linear framebuffer driver has been added.</para>
371
372     <para arch="i386" role="historic">The &man.viapm.4; driver for VIA SMBus
373       power management controllers has been added. &merged;</para>
374
375     <!-- Above this line, sort kernel changes by manpage/keyword-->
376
377     <para role="historic">Write combining for crashdumps has been implemented.  This
378       feature is useful when write caching is disabled on both SCSI
379       and IDE disks, where large memory dumps could take up to an hour
380       to complete. &merged;</para>
381
382     <para>The kernel crashdump infrastructure has been revised, to
383       support new platforms and in general clean up the logic in the
384       code.  One implication of this change is that the on-disk format
385       for kernel dumps has changed, and is now
386       byte-order-agnostic.</para>
387
388     <para>Extremely large swap areas (&gt;67 GB) no longer panic the
389       system.</para>
390
391     <para arch="alpha">Support for threads under Linux emulation has
392       been added.</para>
393
394     <para role="historic">The <maketarget>buildkernel</maketarget> target now gets the
395       name of the configuration(s) to build from the
396       <varname>KERNCONF</varname> variable, not
397       <varname>KERNEL</varname>.  It is no longer required, in some
398       cases, for a <maketarget>buildworld</maketarget> to precede a
399       <maketarget>buildkernel</maketarget>.  (The
400       <maketarget>buildworld</maketarget> is still required when
401       upgrading across major releases, across
402       <application>binutil</application> updates and when
403       &man.config.8; changes version.) &merged;</para>
404
405     <para role="historic">The out-of-swap process termination code now begins killing
406       processes earlier to avoid deadlocks; it now also takes into
407       account the swap space used by processes when computing the
408       process sizes. &merged;</para>
409
410     <para>Linker sets are now self-contained; gensetdefs(8) is
411       unnecessary and has been removed.</para>
412
413     <para role="historic">Network device cloning has been implemented, and the
414       &man.gif.4; device has been modified to take advantage of it.
415       Thus, instead of specifying how many &man.gif.4; interfaces are
416       available in kernel configuration files, &man.ifconfig.8;'s
417       <option>create</option> option should be used when another device
418       instance is desired. &merged;</para>
419
420     <para>It is now possible to hardwire kernel environment variables
421       (such as tuneables) at compile-time using &man.config.8;'s
422       <literal>ENV</literal> directive.</para>
423
424     <para>Idle zeroing of pages can be enabled with the
425       <varname>vm.idlezero_enable</varname> sysctl variable.</para>
426
427     <para arch="i386,pc98" role="historic">The load addresses of kernels are now exported
428       to the symbol table and various hard-coded constants have been
429       removed so that utilities such as &man.ps.1; can work with
430       kernels compiled at different addresses. &merged;</para>
431
432     <para role="historic">Coredumps of large processes (or of a large number of
433       processes) no longer lock up the machine for long periods of
434       time. &merged;</para>
435
436     <para>The &os; kernel scheduler now supports Kernel-Scheduled
437       Entities (KSEs), which provides support for multiple threads of
438       execution per process similar to Schedular Activations.  At this
439       point, the kernel has most of the changes needed to support
440       threading.  The kernel scheduler can schedule multiple threads per
441       process, but only on a single CPU at a time.  Support for
442       userland programs to create and utilize multiple threads is not
443       yet completed.
444
445         <note>
446           <para>KSE is a work in progress.</para>
447         </note>
448
449       </para>
450
451     <para>The kernel now has support for multiple low-level console
452       devices.  The new &man.conscontrol.8; utility helps to manage
453       the different consoles.</para>
454
455     <para arch="alpha">The console driver has gained support for
456       TGA-based display adapters.</para>
457
458     <para role="historic">The kernel on the installation CDs is now separated from the
459       <filename>mfsroot</filename> image.  This permits the use of a
460       full kernel when installing from CD on machines that support CD
461       booting (instead of the stripped-down kernel used on
462       floppies). &merged;</para>
463
464     <para role="historic">The system load average computation now adds some jitter to
465       the timing of samples, in order to avoid synchronization with
466       processes that run periodically. &merged;</para>
467
468     <para role="historic">If a debugging kernel with modules is being built
469       (i.e. using <literal>makeoptions DEBUG=-g</literal>), the
470       modules will now be built with debugging support as well, for
471       completeness.  A side effect of this change is that modules
472       built and installed with debugging kernels will now occupy more
473       space on disk than they did previously. &merged;</para>
474
475     <para role="historic">The kernel dump device can now be set via the
476       <varname>dumpdev</varname> loader tunable.  As a result, it is
477       now possible to obtain crash dumps from panics during the late
478       stages of kernel initialization (before the system enters into
479       single-user mode). &merged;</para>
480
481     <para>The kernel memory allocator is now a slab memory allocator,
482       similar to that used in Solaris.  This is a SMP-safe memory
483       allocator that has near-linear performance as the number of CPUs
484       increases.  It also allows for reduced memory
485       fragmentation.</para>
486
487     <sect3>
488       <title>Processor/Motherboard Support</title>
489
490       <para>SMP support has been largely reworked, incorporating code
491         from BSD/OS 5.0.  One of the main features of SMPng
492         (<quote>SMP Next Generation</quote>) is to allow more
493         processes to run in kernel, without the need for spin locks
494         that can dramatically reduce the efficiency of multiple
495         processors.  Interrupt handlers now have contexts associated
496         with them that allow them to be blocked, which reduces the
497         need to lock out interrupts.</para>
498
499       <para arch="i386,pc98">Support for the 80386 processor has been
500         removed from the <filename>GENERIC</filename> kernel, as this
501         code seriously pessimizes performance on other IA32
502         processors.
503         The <literal>I386_CPU</literal> kernel option
504         to support the 80386 processor is now mutually exclusive with
505         support for other IA32 processors; this should slightly
506         improve performance on the 80386 due to the elimination of
507         runtime processor type checks.
508         Custom kernels that will run on the 80386 can
509         still be built by changing the cpu options in the kernel
510         configuration file to only include
511         <literal>I386_CPU</literal>.</para>
512
513       <para arch="alpha" role="historic">AlphaServer 1200 (<quote>Tincup</quote>) has
514         been tested and works OK.  Currently it does not want to boot
515         from CD or floppy but a transplanted disk that was installed
516         on another Alpha works well. &merged;</para>
517
518       <para arch="alpha">The API UP1100 mainboard has been verified to
519         work.</para>
520
521       <para arch="alpha">The API CS20 1U high server has been verified
522         to work.</para>
523
524       <para arch="alpha">Support for AlphaServer 2100A
525         (<quote>Lynx</quote>) has been added.</para>
526
527       <para arch="alpha">Kernel code has been added that allows older
528         generation Alpha CPUs (EV4 and EV5) to emulate instructions of
529         the newer Alpha CPU generations. This enables the use of
530         binary-only programs like <application>Adobe Acrobat
531         4</application> on EV4 and EV5.</para>
532
533       <para arch="alpha">SMP support for the Alpha is now operational.</para>
534
535       <para arch="i386" role="historic">Detection for new processors, such as the
536         FC-PGA2 Pentium III (Tualatin), Transmeta Crusoe, and
537         Transmeta Crusoe LongRun, has been added. &merged;</para>
538
539       <para arch="alpha">Support for the following hardware has been
540         removed from the installation kernel to make it fit on a
541         1.44MB floppy again: Multia, NoName, PC64, EB64, Aspen Alpine,
542         sa (SCSI tape), amr, parallel port support, vx (3c590, 3c595),
543         pcn (AMD Am79C97x PCI 10/100), sf (Adaptec AIC-6915), sis (SiS
544         900/SiS 7016), ste (Sundance ST201 (D-Link DFE-550TX)), wb
545         (Winbond W89C840F).</para>
546
547       <para arch="i386" role="historic">Support for Streaming <acronym>SIMD</acronym>
548         Extensions (<acronym>SSE</acronym>) has been introduced.  The
549         <literal>CPU_ENABLE_SSE</literal> kernel option controls
550         whether support is compiled into the kernel. &merged;</para>
551
552       <para arch="i386" role="historic">The <literal>CPU_ATHLON_SSE_HACK</literal>
553         kernel option has been added, which attempts to enable the SSE
554         feature bit on newer Athlon CPUs if the BIOS has forgotten to
555         enable it. &merged;</para>
556
557       <para arch="sparc64">The UltraSPARC platform is now supported by
558         &os;.  The following machines are supported to at least some
559         degree:  Ultra 1/2/5/10/30/60, Enterprise 220R/420R, Netra T1 AC200/DC200, Netra T 105, and Blade
560         100.  SMP is supported, and has been tested on the
561         Ultra 2, Ultra 60, Enterprise 220R, and
562         Enterprise 420R.</para>
563
564       <para arch="i386">On some systems, the BIOS does not activate
565         the I/O ports and memory of PC devices, thus making them
566         unusable.  The <varname>hw.pci.enable_io_modes</varname>
567         sysctl/boot loader variable (which defaults to
568         <literal>1</literal>, for <quote>enabled</quote>)
569         forces &os; to enable these devices so that they can be
570         used.</para>
571
572       <para arch="alpha">Support for TurboChannel Alphas has been
573         removed.</para>
574
575     </sect3>
576
577     <sect3>
578       <title>Bootloader Changes</title>
579
580       <para arch="i386" role="historic"><filename>boot2</filename> now supports a
581         <option>-n</option> option to disallow boot interruption by
582         keypresses. &merged;</para>
583
584       <para arch="i386" role="historic">A new <filename>cdboot</filename> bootstrap
585         utility for CDROMs provides better compatability with some
586         BIOS implementations that do not completely implement the El
587         Torito bootable CDROM standard.  This boot loader supports
588         <quote>no emulation</quote> mode booting, thus eliminating the
589         need for an emulated floppy disk image on a bootable
590         CDROM. &merged;</para>
591
592       <para arch="i386,pc98" role="historic">The i386 boot loader now has support for a
593         <literal>nullconsole</literal> console type, for use on
594         systems with neither a video console nor a serial
595         port. &merged;</para>
596
597       <para arch="i386,pc98" role="historic">The &man.loader.8; now has optional support
598         (enabled at compile-time, off by default) for loading
599         <application>bzip2</application>-compressed kernels and
600         modules. &merged;</para>
601
602       <para arch="i386" role="historic">Support for Intel's Wired for Management 2.0
603         (PXE) was added to the &os; boot loader.  Due to API
604         differences, the older PXE versions are not supported.  This
605         allow network booting using DHCP. &merged;</para>
606
607       <!-- Above this line, order bootloader changes by keyword-->
608
609       <para arch="i386" role="historic">The &os; boot loader now contains a workaround
610         to support CDROM booting on certain IBM BIOSs that expect the
611         first sector of the emulated floppy to contain a valid MS-DOS
612         BPB that they can modify. &merged;</para>
613
614       <para arch="i386,pc98" role="historic">The &os; boot loader now supports a
615         <option>-p</option> flag to force the kernel to pause after
616         each line of output during the probing phase. &merged;</para>
617
618       <para arch="alpha,i386" role="historic">The &os; boot loader is now capable of
619         booting from filesystems with block sizes larger than
620         8K. &merged;</para>
621
622       <para>The kernel and modules have been moved to the directory
623         <filename>/boot/kernel</filename>, so they can be easily
624         manipulated together.  The boot loader has been updated to
625         make this change as seamless as possible.</para>
626     </sect3>
627
628     <sect3>
629       <title>Network Interface Support</title>
630
631       <para role="historic">The &man.an.4; driver for Cisco Aironet cards now supports
632         Wired Equivalent Privacy (WEP) encryption, settable via
633         &man.ancontrol.8;. &merged;</para>
634
635       <para role="historic">The &man.an.4; driver now supports the Cisco Aironet 350
636         series of adaptors. &merged;</para>
637
638       <para role="historic">The &man.an.4; driver now supports <quote>monitor</quote>
639         mode, settable via the <option>-M</option> option to
640         &man.ancontrol.8;. &merged;</para>
641
642       <para role="historic">The &man.an.4; driver now supports Cisco LEAP, as well as
643         the <quote>Home</quote> WEP key.  The Linux Aironet utilities
644         are now supported under emulation. &merged;</para>
645
646       <para arch="i386,pc98" role="historic">Generic support for ARCNET token-based
647         networks has been added. &merged;</para>
648
649       <para arch="i386,pc98" role="historic">The &man.bge.4; driver has been added to
650         support the Broadcom BCM570x family of Gigabit Ethernet
651         controllers, including the 3Com 3c996-T, the SysKonnect
652         SK-9D21 and SK-9D41, and the built-in Gigabit Ethernet NICs on
653         Dell PowerEdge 2550 servers.  Output TCP/IP checksum offload,
654         jumbo frames and VLAN tag insertion/stripping are supported,
655         as well as interrupt moderation. &merged;</para>
656
657       <para arch="i386" role="historic">The cm driver has been added to support SMC
658         COM90cx6 ARCNET network adapters. &merged;</para>
659
660       <para>The &man.dc.4; driver now supports NICs based on the Xircom
661         3201 and Conexant LANfinity RS7112 chips.</para>
662
663       <para role="historic">The &man.dc.4; driver now has support for
664         VLANs. &merged;</para>
665
666       <para role="historic">The &man.de.4; driver now performs round-robin arbitration
667         between the transmit and receive units of the 21143, instead
668         of giving priority to the receive unit.  This gives a
669         10&ndash;15% performance improvement in the forwarding rate
670         under heavy load. &merged;</para>
671
672       <para arch="alpha">The &man.ed.4; driver is now supported.</para>
673
674       <para arch="i386,pc98" role="historic">Linksys Fast Ethernet PCCARD cards supported
675         by the &man.ed.4; driver now require the addition of flag
676         <literal>0x80000</literal> to their config line in
677         &man.pccard.conf.5;.  This flag is not optional.  These
678         Linksys cards will not be recognized without
679         it. &merged;</para>
680
681       <para role="historic">A bug in the &man.ed.4; driver that could cause panics
682         with very short packets and BPF or bridging active has been
683         fixed. &merged;</para>
684
685       <para role="historic">The &man.ed.4; driver now has support for D-Link DL10022
686         chips, necessary for the NetGear FA-410TX and other cards.  As
687         a result, <literal>device miibus</literal> is required in
688         kernel configurations using the &man.ed.4;
689         driver. &merged;</para>
690
691       <para arch="i386">The &man.el.4; driver can now be loaded as a
692         module.</para>
693
694       <para arch="i386,pc98,ia64" role="historic">The &man.em.4; driver has been added to
695         support NICs based on the Intel 82542, 82543, 82544, 82545EM,
696         and 82546EB
697         Gigabit Ethernet controller chips.  The driver has VLAN
698         support, and also supports
699         transmit/receive checksum offload and jumbo frames on 82543
700         and 82544-based adapters. &merged;</para>
701
702       <para role="historic">The &man.faith.4; device is now loadable, unloadable, and
703         clonable. &merged;</para>
704
705       <para arch="i386,pc98" role="historic">Support for Fujitsu MB86960A/MB86965A based
706         Ethernet PC-Cards has been added back in the &man.fe.4;
707         driver. &merged;</para>
708
709       <para arch="alpha" role="historic">The &man.fpa.4; driver now supports Digital's
710         DEFPA FDDI adaptors on the Alpha. &merged;</para>
711
712       <para role="historic">The &man.fxp.4; driver now requires a <literal>device
713         miibus</literal> entry in the kernel configuration
714         file. &merged;</para>
715
716       <para role="historic">The &man.fxp.4; driver now contains a workaround for PCI
717         protocol violations caused by defects in some systems based on
718         the Intel ICH2/ICH2-M chip.  The workaround is to rewrite the
719         EEPROM on the interface to disable Dynamic Standby Mode; once
720         the EEPROM is rewritten, the system needs to be rebooted for
721         the new settings to take effect. &merged;</para>
722
723       <para role="historic">The &man.fxp.4; driver now supports Intel's loadable
724         microcode to implement receive-side interrupt coalescing and
725         packet bundling, on NICs that support these features.  This
726         support can be activated by the use of the
727         <option>link0</option> option to
728         &man.ifconfig.8;. &merged;</para>
729
730       <para arch="sparc64">The gem driver has been added to support
731         the Sun GEM Gigabit Ethernet and ERI Fast Ethernet
732         adapters.</para>
733
734       <para role="historic">The &man.gx.4; driver has been added to support NICs based
735         on the Intel 82542 and 82543 Gigabit Ethernet controller
736         chips.  Both fiber and copper variants of the cards are
737         supported.  Both boards support VLAN tagging/insertion, and
738         the 82543 additionally supports TCP/IP checksum
739         offload. &merged;</para>
740
741       <para arch="sparc64">The hme driver has been added to support
742         the Sun HME Fast Ethernet adapter, onboard on many Sun Ultra
743         series machines.</para>
744
745       <para role="historic">The &man.lge.4; driver has been added to support the Level
746         1 LXT1001 NetCellerator Gigabit Ethernet controller chip. This
747         device is used on some fiber optic GigE cards from SMC, D-Link
748         and Addtron.  Jumbograms and TCP/IP checksum offload on
749         receive are supported, although hardware VLAN filtering is
750         not. &merged;</para>
751
752       <para role="historic">The my driver, which supports the Myson Fast Ethernet and
753         Gigabit Ethernet adapters, has been added. &merged;</para>
754
755       <para role="historic">Added the &man.nge.4; driver, which supports PCI Gigabit
756         Ethernet adapters based on the National Semiconductor DP83820
757         and DP83821 Gigabit Ethernet controller chips, including the
758         D-Link DGE-500T, SMC EZ Card 1000 (SMC9462TX), Asante
759         FriendlyNet GigaNIC 1000TA and 1000TPC and Addtron AEG320T.
760         This driver supports transmit and receive checksum
761         offloading. &merged;</para>
762
763       <para role="historic">The &man.pcn.4; driver, which supports the AMD PCnet/FAST,
764         PCnet/FAST+, PCnet/FAST III, PCnet/PRO, PCnet/Home, and
765         HomePNA adapters, has been added.  Although these cards are
766         already supported by the &man.lnc.4; driver, the &man.pcn.4;
767         driver runs these chips in 32-bit mode and uses the RX
768         alignment feature to achieve zero-copy receive.  This driver
769         is also machine-independent, so it will work on the i386,
770         pc98 and Alpha platforms.  The &man.lnc.4; driver is still needed
771         to support non-PCI cards. &merged;</para>
772
773       <para role="historic">The &man.ray.4; driver, which supports the Webgear Aviator
774         wireless network cards, has been committed.  The operation of
775         &man.ray.4; interfaces can be modified by
776         &man.raycontrol.8;. &merged;</para>
777
778       <para arch="i386,pc98">The &man.rp.4; driver has been updated to
779         version 3.02 and can now be built as a module. &merged;</para>
780
781       <para arch="i386" role="historic">The sbni driver, for supporting the Granch
782         SBNI12 series of ISA and PCI point-to-point communications
783         interfaces, has been added.  The <filename
784         role="package">sysutils/sbniconfig</filename> port in the &os;
785         Ports Collection can be used for configuring these
786         devices. &merged;</para>
787
788       <para role="historic">Added support for PCI Ethernet adapters based on the SiS
789         900 and SiS 7016 Fast Ethernet controller chips (for example,
790         as seen on the SiS 635 and 735 motherboard chipsets), as well
791         as the National Semiconductor DP83815 chipset (including the
792         NetGear FA311-TX and FA312-TX) in the form of the &man.sis.4;
793         driver.  This device has support for VLANs. &merged;</para>
794
795       <para arch="pc98" role="historic">The snc driver for the National Semiconductor
796         DP8393X (SONIC) Ethernet controller has been added.
797         Currently, this driver is only used on the PC-98
798         architecture. &merged;</para>
799
800       <para>The &man.stf.4; device is now clonable.</para>
801
802       <para role="historic">The &man.tap.4; driver, a virtual Ethernet device driver
803         for bridged configurations, has been added.  This device is
804         clonable.  &merged;</para>
805
806       <para role="historic">The &man.ti.4; driver now supports the Alteon AceNIC
807         1000baseT Gigabit Ethernet and Netgear GA620T 1000baseT
808         Gigabit cards. &merged;</para>
809
810       <para role="historic">The &man.ti.4; driver correctly masks VLAN tags. &merged;</para>
811
812       <para>The &man.tx.4; driver now supports true multicast
813         filtering.</para>
814
815       <para role="historic">The &man.txp.4; driver has been added to support NICs
816         based on the 3Com 3XP Typhoon/Sidewinder (3CR990)
817         chipset. &merged;</para>
818
819       <para role="historic">&man.vlan.4; devices are now loadable, unloadable, and
820         clonable. &merged;</para>
821
822       <para role="historic">The &man.wi.4; driver now has support for Prism II and
823         Prism 2.5-based NICs.  104/128-bit WEP now works on Prism
824         cards. &merged;</para>
825
826       <para role="historic">The &man.wi.4; driver now supports using a &os; host as
827         a wireless access point.  This functionality can be enabled
828         using the <literal>mediaopt hostap</literal> option of
829         &man.ifconfig.8;.  This feature requires a wireless
830         adapter based on the Prism II chipset. &merged;</para>
831
832       <para role="historic">The &man.wi.4; driver now has support for
833         <application>bsd-airtools</application>. &merged;</para>
834
835       <para role="historic">The xe driver can now be built as a
836         module. &merged;</para>
837
838       <para role="historic">The &man.xl.4; driver now supports the 3Com 3C556 and
839         3C556B MiniPCI adapters used on some laptops. &merged;</para>
840
841       <para role="historic">The &man.xl.4; driver now supports reception of VLAN
842         tagged frames (on the <quote>Cyclone</quote> or newer
843         chipsets). &merged;</para>
844
845       <para role="historic">The &man.xl.4; driver now supports send- and receive-side
846         TCP/IP checksum offloading for NICs implementing this feature,
847         such as the 3C905B, 3C905C, and 3C980C. &merged;</para>
848
849       <para role="historic">A bug in the &man.xl.4; driver, related to statistics
850         overflow interrupt handling, was causing slowdowns at medium
851         to high packet rates; this has been fixed. &merged;</para>
852
853       <para role="historic">The per-interface <varname>ifnet</varname> structure now
854         has the ability to indicate a set of capabilities supported by
855         a network interface, and which ones are enabled.
856         &man.ifconfig.8; has support for querying these
857         capabilities. &merged;</para>
858
859       <para role="historic">Performance with hosts having a large number of IP aliases
860         has been improved, by replacing the per-interface
861         <varname>if_inaddr</varname> linear list with a hash table. &merged;</para>
862
863       <para>Network devices now automatically appear as special files in
864         <filename>/dev/net</filename>.  Interface hardware ioctls (not
865         protocol or routing) can be performed on these devices.  The
866         <varname>SIOCGIFCONF</varname> ioctl may be performed on the
867         special <filename>/dev/network</filename> node.</para>
868
869       <para role="historic">Selected network drivers now implement a semi-polling
870         mode, which makes systems much more resilient to attacks and
871         overloads.  To enable polling, the following options are
872         required in a kernel configuration file:
873
874       <programlisting>options DEVICE_POLLING
875 options HZ=1000 # not compulsory but strongly recommended</programlisting>
876
877         The <varname>kern.polling.enable</varname> sysctl variable
878         will then activate polling mode; with the
879         <varname>kern.polling.user_frac</varname> sysctl indicating
880         the percentage of CPU time to be reserved for userland.  The
881         devices initially supporting polling are &man.dc.4;,
882         &man.fxp.4;, &man.rl.4;, and &man.sis.4;.  More details can be found in
883         the &man.polling.4; manual page. &merged;</para>
884
885       <para arch="i386,pc98" role="historic">The packet-forwarding performance of certain
886         network drivers (specifically &man.dc.4; and &man.sis.4;) has
887         been enhanced by the elimination of unnecessary buffer
888         copies. &merged;</para>
889
890       <para><quote>Zero copy</quote> support has been added to the
891         networking stack.  This feature can eliminate a copy of
892         network data between the kernel and userland, which is one of
893         the more significant bottlenecks in network throughput.
894         The send-side code should work with almost any network
895         adapter, while the receive-side code requires a network
896         adapter with an MTU of at least one memory page size (for
897         example, jumbo frames on Gigabit Ethernet).  For more
898         information, see &man.zero.copy.9;.</para>
899     </sect3>
900
901     <sect3>
902       <title>Network Protocols</title>
903
904       <para role="historic">&man.accept.filter.9;, a kernel feature to reduce
905         overheads when accepting and reading new connections on
906         listening sockets, has been added. &merged;</para>
907
908       <para role="historic">The <literal>proxy</literal> modifier to &man.arp.8;'s
909         <option>-d</option> option has been renamed to
910         <literal>pub</literal>, for consistency with the
911         <option>-s</option> option.  The <literal>only</literal> keyword
912         has been added to the <option>-s</option> and
913         <option>-S</option> flags, to be used in creating
914         <quote>proxy-only</quote> published entries. &merged;</para>
915
916       <para role="historic">The read timeout feature of &man.bpf.4; now works more
917         correctly with &man.select.2;/&man.poll.2;, and therefore with
918         pthreads. &merged;</para>
919
920       <para role="historic">&man.bridge.4; and &man.dummynet.4; have received some
921         enhancements and bug fixes, and are now loadable
922         modules. &merged;</para>
923
924       <para role="historic">&man.bridge.4; now has better support for multiple,
925         fully-independent bridging clusters, and is much more stable
926         in the presence of dynamic attachments and detatchments.  Full
927         support for VLANs is also supported. &merged;</para>
928
929       <para>ICMP ECHO and TSTAMP replies are now rate limited.  TCP
930         RSTs generated due to packets sent to open and unopen ports
931         are now limited by separate counters.  Each rate limiting
932         queue now has its own description.</para>
933
934       <para role="historic">ICMP <literal>UNREACH_FILTER_PROHIB</literal> messages can
935         now RST TCP connections in the <literal>SYN_SENT</literal>
936         state if the correct sequence numbers are sent back, as
937         controlled by the
938         <varname>net.inet.tcp.icmp_may_rst</varname> sysctl. &merged;</para>
939
940       <para>IP multicast now works on VLAN devices.  Several other
941         bugs in the VLAN code have also been fixed.</para>
942
943       <para role="historic">A bug in the IPsec processing for IPv4, which caused the
944         inbound SPD checks to be ignored, has been fixed. &merged;</para>
945
946       <para role="historic">&man.ipfw.4; now filters correctly in the presence of ECN
947         bits in TCP segments. &merged;</para>
948
949       <para>&man.ipfw.4; has been re-implemented (the new version is
950         commonly referred to as <quote>IPFW2</quote>).  It now uses
951         variable-sized representation of rules in the kernel, similar
952         to &man.bpf.4; instructions.  Most of the externally-visible
953         behavior (i.e. through &man.ipfw.8;) should be unchanged.,
954         although &man.ipfw.8; now supports <literal>or</literal>
955         connectives between match fields. &merged;</para>
956
957       <para role="historic">A new ng_eiface netgraph module has been added, which
958         appears as an Ethernet interface but delivers its Ethernet
959         frames to a Netgraph hook. &merged;</para>
960
961       <para>A new &man.ng.device.4; netgraph node type has been added,
962         which creates a device entry in <filename>/dev</filename>, to
963         be used as the entry point to a networking graph.</para>
964
965       <para role="historic">A new &man.ng.etf.4; netgraph node allows Ethernet type
966         packets to be filtered to different hooks depending on
967         ethertype. &merged;</para>
968
969       <para>The &man.ng.gif.4; and &man.ng.gif.demux.4; netgraph
970         nodes, for operating on &man.gif.4; devices, have been
971         added.</para>
972
973       <para>The &man.ng.ip.input.4; netgraph node, for queueing IP
974         packets into the main IP input processing code, has been
975         added.</para>
976
977       <para role="historic">The &man.ng.mppc.4; and &man.ng.bridge.4; node types have
978         been added to the &man.netgraph.4; subsystem.  The
979         &man.ng.ether.4; node is now dynamically loadable.
980         Miscellaneous bug fixes and enhancements have also been
981         made. &merged;</para>
982
983       <para role="historic">A new netgraph node type &man.ng.one2many.4; for
984         multiplexing and demultiplexing packets over multiple links
985         has been added.  &merged;</para>
986
987       <para>A new ng_split node type has been added for splitting a
988         bidirectional packet flow into two unidirectional flows.</para>
989
990       <para role="historic">A new sysctl
991         <varname>net.inet.ip.check_interface</varname>, which is on by
992         default, causes IP to verify that an incoming packet arrives
993         on an interface that has an address matching the packet's
994         destination address. &merged;</para>
995
996       <para role="historic">A new sysctl
997         <varname>net.link.ether.inet.log_arp_wrong_iface</varname> has
998         been added to control the suppression of logging when ARP
999         replies arrive on the wrong interface. &merged;</para>
1000
1001       <para role="historic">A new <literal>options RANDOM_IP_ID</literal> kernel
1002         option causes the ID field of IP packets to be randomized.
1003         This closes a minor information leak which allows a remote
1004         observer to determine the rate at which the machine is
1005         generating packets, since the default behavior is to increment
1006         a counter for each packet sent. &merged;</para>
1007
1008       <para arch="alpha">SLIP has been removed from the
1009         <filename>mfsroot</filename> floppy image.</para>
1010
1011       <para role="historic">TCP has received some bug fixes for its delayed ACK
1012         behavior. &merged;</para>
1013
1014       <para role="historic">TCP now supports the NewReno modification to the TCP Fast
1015         Recovery algorithm.  This behavior can be controlled via the
1016         <varname>net.inet.tcp.newreno</varname> sysctl
1017         variable. &merged;</para>
1018
1019       <para role="historic">TCP now uses a more aggressive timeout for initial SYN
1020         segments; this allows initial connection attempts to be
1021         dropped much faster. &merged;</para>
1022
1023       <para role="historic">The <literal>TCP_COMPAT_42</literal> kernel option has
1024         been removed. &merged;</para>
1025
1026       <para role="historic">The <literal>TCP_RESTRICT_RST</literal> kernel option has
1027         been removed.  Similar functionality can be achieved with the
1028         <varname>net.inet.tcp.blackhole</varname> sysctl
1029         variable. &merged;</para>
1030
1031       <para role="historic">TCP now has RFC 1323 extensions enabled by default in
1032         &man.rc.conf.5;. &merged;</para>
1033
1034       <para role="historic">RFC 1323 and RFC 1644 TCP extensions are now disabled for
1035         a connection in progress if no response has been received by
1036         the third SYN segment sent.  This behavior tries to work
1037         around (very old) terminal servers with buggy VJ header
1038         compression implementations. &merged;</para>
1039
1040       <para role="historic">The TCP implementation no longer requires the allocation
1041         of a TCP template structure for each connection; this should
1042         reduce the buffer usage on large systems handling many
1043         connections. &merged;</para>
1044
1045       <para role="historic">TCP's default buffer sizes, controlled by the
1046         <varname>net.inet.tcp.sendspace</varname> and
1047         <varname>net.inet.tcp.recvspace</varname> sysctl variables,
1048         have been increased to 32K and 64K respectively.  Previously,
1049         the default for both buffer sizes was 16K.  To try to avoid
1050         increasing congestion, the default value for
1051         <varname>net.inet.tcp.local_slowstart_flightsize</varname> has
1052         been changed from infinity to 4. &merged;
1053
1054         <note>
1055           <para>On busy hosts, the new larger buffer sizes may require
1056             manually increasing the
1057             <varname>NMBCLUSTERS</varname> parameter, either in the
1058             kernel configuration file or via the
1059             <varname>kern.ipc.nmbclusters</varname> loader tunable.
1060             <command>netstat -mb</command> can be used to monitor the
1061             state of mbuf clusters.</para>
1062         </note>
1063       </para>
1064
1065       <para role="historic">TCP now supports RFC 1948 (Defending Against Sequence
1066         Number Attacks).  The
1067         <varname>net.inet.tcp.isn_reseed_interval</varname> sysctl
1068         variable controls the reseeding of the secret data used in
1069         the RFC 1948 initial sequence number calculations. &merged;</para>
1070
1071       <para role="historic">The TCP implementation in &os; now implements a cache of
1072         outstanding, received SYN segments.  Incoming SYN segments now
1073         cause entries to be placed in the cache until the TCP
1074         three-way handshake is complete, at which point, memory is
1075         allocated for the connection as usual.  In addition, all TCP
1076         Initial Sequence Numbers (ISNs) are used as cookies, allowing
1077         entries in the cache to be dropped, but still have their
1078         corresponding ACKs accepted later.  The combination of the
1079         so-called
1080         <quote>syncache</quote> and <quote>syncookies</quote> features
1081         makes a host much more resistant to TCP-based Denial of
1082         Service attacks.  Work on this feature was sponsored by DARPA
1083         and NAI Labs. &merged;</para>
1084
1085       <para role="historic">A bug in the TCP implementation, which could cause
1086         connections to stall if a sender saw a zero-sized window, has
1087         been corrected. &merged;</para>
1088
1089       <para role="historic">The TCP implementation now properly ignores packets
1090         addressed to IP-layer broadcast addresses. &merged;</para>
1091
1092       <para>The ephemeral port range used for TCP and UDP has been
1093         changed to 49152&ndash;65535 (the old default was
1094         1024&ndash;5000).  This increases the number of concurrent
1095         outgoing connections/streams.</para>
1096     </sect3>
1097
1098     <sect3>
1099       <title>Disks and Storage</title>
1100
1101       <para arch="i386" role="historic">Support for the Adaptec FSA family of PCI-SCSI
1102         RAID controllers has been added, in the form of the
1103         &man.aac.4; driver.  This driver includes proper handling of
1104         commands initiated by the adapter, addition/removal of disk
1105         devices, crashdump functionality, and &man.ioctl.2; commands
1106         necessary for the management CLI, and is fully qualified and
1107         sanctioned by Adaptec. &merged;</para>
1108
1109       <para role="historic">The &man.ahc.4; driver has received numerous updates,
1110         bugfixes, and enhancements.  Among various improvements are
1111         improved compatibility with chips in <quote>RAID Port</quote>
1112         mode and systems with AAA and/or ARO cards installed, as well
1113         as performance improvements. Some bugs were also fixed,
1114         including a rare hang on Ultra2/U160
1115         controllers. &merged;</para>
1116
1117       <para arch="i386">The ahd driver, which supports the Adaptec
1118         AIC7902 Ultra320 PCI-X SCSI Controller chip, has been
1119         added.</para>
1120
1121       <para arch="i386" role="historic">The &man.asr.4; driver, which provides support
1122         for the Adaptec SCSI RAID controller family, as well as the
1123         DPT SmartRAID V and VI families, has been
1124         added. &merged;</para>
1125
1126       <para arch="i386" role="historic">The &man.asr.4; driver now supports the
1127         Adaptec 2000S and 2005S Zero-Channel RAID
1128         controllers. &merged;</para>
1129
1130       <para role="historic">The &man.ata.4; driver now has support for ATA100
1131         controllers.  In addition, it now supports the ServerWorks
1132         ROSB4 ATA33 chipset, the CMD 648 ATA66 and CMD 649 ATA100
1133         chipsets, and the Cyrix 5530. &merged;</para>
1134
1135       <para role="historic">To provide more flexible configuration, the various
1136         options for the &man.ata.4; driver are now boot loader
1137         tunables, rather than kernel configure-time
1138         options. &merged;</para>
1139
1140       <para role="historic">The &man.ata.4; driver now has support for tagged queuing,
1141         which is enabled by the <varname>hw.ata.tags</varname> loader
1142         tunable. &merged;</para>
1143
1144       <para role="historic">The &man.ata.4; driver now has support for ATA
1145         <quote>pseudo</quote> RAID controllers as the Promise Fasttrak
1146         and HighPoint HPT370 controllers. &merged;</para>
1147
1148       <para role="historic">The &man.ata.4; driver now supports a wider variety of SiS
1149         chipsets, as listed in the Hardware Notes. &merged;</para>
1150
1151       <para role="historic">The &man.ata.4; driver now has support for creating,
1152         deleting, querying, and rebuilding ATA RAIDs under control of
1153         &man.atacontrol.8;. &merged;</para>
1154
1155       <para role="historic">The BurnProof(TM) feature, for applicable ATAPI CD-ROM
1156         burners, is now supported. &merged;</para>
1157
1158       <para role="historic">The &man.ata.4; driver now has support for 48-bit
1159         addressing.  Devices larger than 137GB are now
1160         supported. &merged;</para>
1161
1162       <para role="historic">The &man.ata.4; driver now contains fixes for some data
1163         corruption problems on systems using the VIA 82C686B
1164         Southbridge chip. &merged;</para>
1165
1166       <para>The &man.ata.4; driver (along with &man.burncd.8;) now
1167         supports writing to media in DVD+RW drives.</para>
1168
1169       <para>The &man.ata.4; driver now supports accessing ATA devices
1170         as SCSI devices via the CAM layer.  This feature requires
1171         <literal>device atapicam</literal> in the kernel
1172         configuration.</para>
1173
1174       <para role="historic">The &man.cd.4; driver now has support for write
1175         operations.  This allows writing to DVD-RAM, PD and similar
1176         drives that probe as CD devices.  Note that change affects
1177         only random-access writeable devices, not sequential-only
1178         writeable devices such as CD-R drives, which are supported by
1179         &man.cdrecord.1; (a part of
1180         <filename role="package">sysutils/cdrtools</filename> in the
1181         Ports Collection. &merged;</para>
1182
1183       <para arch="i386" role="historic">The ciss driver, for devices utilizing the
1184         Common Interface for SCSI-3 Support, has been added.  This
1185         driver supports the Compaq SmartRAID 5* family of RAID
1186         controllers (5300, 532, 5i). &merged;</para>
1187
1188       <para>The &man.fdc.4; floppy disk has undergone a number of
1189         enhancements.  Density selection for common settings is now
1190         automatic; the driver is also much more flexible in setting
1191         the densities of various subdevices.</para>
1192
1193       <para>The &man.geom.4; disk I/O request transformation framework
1194         has been added; this extensible framework is designed to
1195         support a wide variety of operations on I/O requests on their
1196         way from the upper kernel to the device drivers.</para>
1197
1198       <para role="historic">The ida disk driver now has crashdump
1199         support. &merged;</para>
1200
1201       <para arch="i386" role="historic">The iir driver has been added to support the
1202         Intel Integrated RAID controllers, as well as prior ICP Vortex
1203         controllers.</para>
1204
1205       <para arch="alpha" role="historic">A bug that made certain CDROM drives fail to
1206         attach when connected to a SCSI card driven by &man.isp.4; has
1207         been fixed. &merged;</para>
1208
1209       <para>The &man.isp.4; driver is now proactive about discovering
1210         Fibre Channel topology changes.</para>
1211
1212       <para>The &man.isp.4; driver now supports target mode for Qlogic
1213         SCSI cards, including Ultra2 and Ultra3 and dual bus
1214         cards.</para>
1215
1216       <para role="historic">The &man.isp.4; driver now supports the Qlogic 2300 and
1217         2312 Optical Fibre Channel PCI cards. &merged;</para>
1218
1219       <para>&man.md.4;, the memory disk device, has had the
1220         functionality of &man.vn.4; incorporated into it.  &man.md.4;
1221         devices can now be configured by &man.mdconfig.8;.  &man.vn.4;
1222         has been removed.  The Memory Filesystem (MFS) has also been
1223         removed.</para>
1224
1225       <para arch="i386" role="historic">The &man.mly.4; driver, for Mylex PCI to SCSI
1226         AccelRAID and eXtremeRAID controllers with firmware 6.X and
1227         later, has been added. &merged;</para>
1228
1229       <para arch="i386,pc98" role="historic">The ncv, nsp, and stg drivers have been ported
1230         from NetBSD/pc98.  They support the NCR 53C50 / Workbit Ninja
1231         SCSI-3 / TMC 18C30, 18C50 based PC-Card/ISA SCSI controllers.
1232         All three drivers can be built and loaded as
1233         modules. &merged;</para>
1234
1235       <para arch="powerpc">The ofw driver, a basic OpenFirmware disk
1236         driver, has been added.</para>
1237
1238       <para>Some problems in &man.sa.4; error handling have been
1239         fixed, including the <quote>tape drive spinning indefinitely
1240         upon &man.mt.1; <option>stat</option></quote> problem.</para>
1241
1242       <para arch="i386" role="historic">The &man.twe.4; 3ware ATA RAID driver has
1243         added. &merged;</para>
1244
1245       <para role="historic">The &man.wd.4; compatibility devices were removed from the
1246         &man.ata.4; driver. &merged;</para>
1247     </sect3>
1248
1249     <sect3>
1250       <title>Filesystems</title>
1251
1252       <para>Support for named extended attributes was added to the
1253         &os; kernel.  This allows the kernel, and appropriately
1254         privileged userland processes, to tag files and directories
1255         with attribute data.  Extended attributes were added to
1256         support the TrustedBSD Project, in particular ACLs, capability
1257         data, and mandatory access control labels (see
1258         <filename>/usr/src/sys/ufs/ufs/README.extattr</filename> for
1259         details).</para>
1260
1261       <para role="historic">Due to a licensing change, softupdates have been
1262         integrated into the main portion of the kernel source tree.
1263         As a consequence, softupdates are now available with the
1264         <filename>GENERIC</filename> kernel. &merged;</para>
1265
1266       <para>A filesystem snapshot capability has been added to FFS.
1267         Details can be found in
1268         <filename>/usr/src/sys/ufs/ffs/README.snapshot</filename>.</para>
1269
1270 <!-- The following note needs to be made more specific or eliminated. -->
1271       <para>Softupdates for FFS have received some bug fixes and
1272         enhancements.</para>
1273
1274       <para>When running with softupdates, &man.statfs.2; and
1275         &man.df.1; will track the number of blocks and files that are
1276         committed to being freed.</para>
1277
1278       <para role="historic">A bug in FFS that could cause superblock corruption on
1279         very large filesystems has been corrected. &merged;</para>
1280
1281       <para role="historic">The ISO-9660 filesystem now has a hook that supports a
1282         loadable character conversion routine.  The
1283         <filename role="package">sysutils/cd9660_unicode</filename>
1284         port contains a set of common conversions. &merged;</para>
1285
1286       <para>&man.kernfs.5; is obsolete and has been retired.</para>
1287
1288       <para role="historic">A bug in the NFS client that caused bogus access times with
1289         <literal>O_EXCL|O_CREAT</literal> opens was
1290         fixed. &merged;</para>
1291
1292       <para role="historic">A new NFS hash function (based on the Fowler/Noll/Vo hash
1293         algorithm) has been implemented to improve NFS performance by
1294         increasing the efficiency of the <varname>nfsnode</varname>
1295         hash tables. &merged;</para>
1296
1297       <para>Client-side NFS locks have been implemented.</para>
1298
1299       <para>The client-side and server-side of the NFS code in the
1300         kernel used to be intertwined in various complex ways.  They
1301         have been split apart for ease of maintenance and further
1302         development.</para>
1303
1304       <para>Support for filesystem Access Control Lists (ACLs) has
1305         been introduced, allowing more fine-grained control of
1306         discretionary access control on files and directories.  This
1307         support was integrated from the TrustedBSD Project.  More
1308         details can be found in
1309         <filename>/usr/src/sys/ufs/ufs/README.acls</filename>.</para>
1310
1311       <para role="historic">The directory layout preference algorithm for FFS
1312         (<literal>dirprefs</literal>) has been changed.  Rather than
1313         scattering directory blocks across a disk, it attempts to
1314         group related directory blocks together.  Operations
1315         traversing large directory hierarchies, such as the &os; Ports
1316         tree, have shown marked speedups.  This change is transparent
1317         and automatic for new directories. &merged;</para>
1318
1319       <para arch="i386,pc98" role="historic">smbfs (CIFS) support in kernel has been added.
1320         The userland programs &man.smbutil.1; and &man.mount.smbfs.8;
1321         can be used to work with SMB shares.  Note that
1322         &man.mount.smbfs.8; will automatically load the
1323         <filename>smbfs.ko</filename> module into the kernel, even if
1324         <literal>LIBMCHAIN</literal> and
1325         <literal>LIBICONV</literal> were not compiled into the kernel.
1326         &merged;</para>
1327
1328       <para>For consistency, the fdesc, fifo, null, msdos, portal,
1329         umap, and union filesystems have been renamed to fdescfs,
1330         fifofs, msdosfs, nullfs, portalfs, umapfs, and unionfs.  Where
1331         applicable, modules and mount_* programs have been renamed.
1332         Compatibility <quote>glue</quote> has been added to
1333         &man.mount.8; so that <literal>msdos</literal> filesystem
1334         entries in &man.fstab.5; will work without changes.</para>
1335
1336       <para>pseudofs, a pseudo-filesystem framework, has been added.
1337         &man.linprocfs.5; and &man.procfs.5; have been modified to use
1338         pseudofs.</para>
1339
1340       <para role="historic">A simple hash-based lookup optimization for large
1341         directories called <literal>dirhash</literal> has been added.
1342         Conditional on the
1343         <literal>UFS_DIRHASH</literal> kernel option (enabled by
1344         default in the <filename>GENERIC</filename> kernel), it
1345         improves the speed of operations on very large directories at
1346         the expense of some memory. &merged;</para>
1347
1348       <para role="historic">The virtual memory subsystem now backs UFS directory
1349         memory requirements by default (this behavior is controlled
1350         via the <varname>vfs.vmiodirenable</varname> sysctl
1351         variable). &merged;</para>
1352
1353       <para role="historic">A bug that prevented the root filesystem from being
1354         mounted from a SCSI CDROM has been fixed (ATAPI CDROMs were
1355         always supported). &merged;</para>
1356
1357       <para role="historic">A number of bugs in the filesystem code, discovered
1358         through the use of the <application>fsx</application>
1359         filesystem test tool, have been fixed.  Under certain
1360         circumstances (primarily related to use of NFS), these bugs
1361         could cause data corruption or kernel panics. &merged;</para>
1362
1363       <para>Network filesystems (such as NFS and smbfs filesystems)
1364         listed in <filename>/etc/fstab</filename> can now be properly
1365         mounted during startup initialization; their mounts are
1366         deferred until after the network is initialized.</para>
1367
1368       <para>Read-only support for the Universal Disk Format (UDF) has
1369         been added.  This format is used on packet-written CD-RWs and
1370         most commercial DVD-Video disks.  The &man.mount.udf.8;
1371         command can be used to mount these disks.</para>
1372
1373       <para>Basic support has been added for the UFS2 filesystem.
1374         Among its features:
1375
1376         <itemizedlist>
1377           <listitem>
1378             <para>The inode has been expanded to 256 bytes to make
1379               space for 64-bit block pointers.</para>
1380           </listitem>
1381
1382           <listitem>
1383             <para>A file-creation time field has been added.</para>
1384           </listitem>
1385
1386           <listitem>
1387             <para>Space has been provided for extended attributes, up
1388               to twice the filesystem block size.</para>
1389           </listitem>
1390         </itemizedlist>
1391
1392         </para>
1393
1394     </sect3>
1395
1396     <sect3>
1397       <title>PCCARD Support</title>
1398
1399       <para arch="i386,pc98" role="historic">The pccard driver and &man.pccardc.8; now
1400         support multiple <quote>beep types</quote> upon card insertion
1401         and removal. &merged;</para>
1402
1403       <para role="historic">On many modern hosts, PCCARD devices can be configured to
1404         route their interrupts via either the ISA or PCI interrupt
1405         paths.  The &man.pcic.4; driver has been updated to support
1406         both interrupt paths (formerly, only routing via ISA was
1407         supported).  &merged; In most cases, configuration of PCMCIA
1408         devices in laptops is simpler and more flexible.  In addition,
1409         various Cardbus bridge PCI cards (such as those used by
1410         Orinoco PCI NICs) are now supported.  Some hosts may
1411         experience problems, such as hangs or panics, with PCI
1412         interrupt routing; they can frequently be made to work by
1413         forcing the older-style ISA interrupt routing.  The following
1414         lines, placed in <filename>/boot/loader.conf</filename>, may
1415         fix the problem:</para>
1416
1417       <programlisting role="historic">hw.pcic.intr_path="1"
1418   hw.pcic.irq="0"</programlisting>
1419
1420       <para role="historic">When installing &os; on such a system, typing the
1421         following lines to the boot loader may be helpful in starting
1422         up &os; for the first time:<para>
1423
1424       <screen role="historic"><prompt>ok</prompt> <userinput>set hw.pcic.intr_path="1"</userinput>
1425 <prompt>ok</prompt> <userinput>set hw.pcic.irq="0"</userinput></screen>
1426
1427       <para arch="i386">Preliminary Cardbus support under NEWCARD has
1428         been added.  This code supports the TI113X, TI12XX, TI125X,
1429         Ricoh 5C46/5C47, Topic 95/97/100 and Cirrus Logic PD683X
1430         bridges.  16-bit PC Card support is not yet functional.</para>
1431
1432       <para arch="i386">NEWCARD is now the default pccard/cardbus
1433         system in the <filename>GENERIC</filename> kernel.</para>
1434
1435     </sect3>
1436
1437     <sect3>
1438       <title>Multimedia Support</title>
1439
1440       <para arch="i386" role="historic">The &man.pcm.4; driver now supports the ESS
1441         Solo 1, Maestro-1, Maestro-2, and Maestro-2e; Forte Media
1442         fm801, ESS Maestro-2e, and VIA Technologies VT82C686A sound
1443         card/chipsets, and has received some other updates.  Separate
1444         drivers for the SoundBlaster 8 and SoundBlaster 16 now replace
1445         an older, unified driver.  A driver for the CMedia
1446         CMI8338/CMI8738 sound chips has been added.  A driver for the
1447         CS4281 sound chip has been added.  A driver for the S3
1448         SonicVibes chipset has been added. &merged;</para>
1449
1450       <para arch="i386" role="historic">A driver for the Avance Logic ALS4000 has been
1451         added. &merged;</para>
1452
1453       <para arch="i386" role="historic">A driver for the ESS Maestro-3/Allegro has
1454         been added, however due to licensing restrictions, it cannot
1455         be compiled into the kernel. &merged; To use this driver, add
1456         the following line to
1457         <filename>/boot/loader.conf</filename>:</para>
1458
1459       <programlisting role="historic">snd_maestro3_load="YES"</programlisting>
1460
1461       <para role="historic">The &man.bktr.4; driver has been updated to 2.18.  This
1462         update provides a number of new features.  New tuner types
1463         have been added, and improvements to the KLD module and to
1464         memory allocation have been made.  Bugs in &man.devfs.5; when
1465         unloading and reloading have been fixed.  Support for new
1466         Hauppauge Model 44xxx WinTV Cards (the ones with no audio mux)
1467         has been added. &merged;</para>
1468
1469       <para arch="i386,pc98" role="historic">The ufm driver, supporting the D-Link DSB-R100
1470         USB Radio, has been added. &merged;</para>
1471
1472       <para role="historic">When sound modules are built, one can now load all the
1473         drivers and infrastructure by <command>kldload
1474         snd</command>. &merged;</para>
1475
1476       <para>A new API has been added for sound cards with hardware
1477         volume control.</para>
1478
1479       <para arch="i386" role="historic">A driver for the Intel 443MX, 810, 815, and
1480         815E integrated sound devices has been added. &merged;</para>
1481
1482       <para arch="i386" role="historic">The via82c686 sound driver now supports the VIA
1483         VT8233. &merged;</para>
1484
1485       <para arch="i386" role="historic">The ich sound driver now support the SiS
1486         7012 chipset. &merged;</para>
1487
1488       <para arch="i386">Drivers have been added to support the Direct
1489         Rendering Infrastructure, which can used to provide 3D
1490         acceleration within <application>XFree86</application>.  Video
1491         cards supported include the 3Dlabs Oxygen GMX 2000 (gammadrm),
1492         AGP Matrox G200/G400/G450/G550 (mgadrm), 3dfx Voodoo
1493         3/4/5/Banshee (tdfxdrm), AGI ATI Rage 128 (r128drm), and AGP
1494         ATI Radeon (radeondrm).</para>
1495
1496     </sect3>
1497
1498     <sect3>
1499       <title>Contributed Software</title>
1500
1501       <para>The Forth Inspired Command Language
1502         (<application>FICL</application>) used in the boot loader has
1503         been updated to 3.02.</para>
1504
1505       <para>Support for Advanced Configuration and Power Interface
1506         (ACPI), a multi-vendor standard for configuration and power
1507         management, has been added.  This functionality has been
1508         provided by the <application>Intel ACPI Component
1509         Architecture</application> project, as of the ACPI CA 20020725
1510         snapshot.  Some backward compatability for applications using
1511         the older APM standard has been provided.</para>
1512
1513       <sect4>
1514         <title>IPFilter</title>
1515
1516         <para><application>IPFilter</application> has been updated to
1517           3.4.28.</para>
1518
1519         <para role="historic"><application>IPFilter</application> now supports
1520           IPv6. &merged;</para>
1521
1522       </sect4>
1523
1524       <sect4 arch="i386">
1525         <title>isdn4bsd</title>
1526
1527         <para><application>isdn4bsd</application> has been updated to
1528           version 1.0.2.</para>
1529
1530         <para role="historic">The &man.ifpi.4; driver for supporting the AVM
1531           Fritz!Card PCI controller has been added. &merged;</para>
1532
1533         <para role="historic">The &man.ifpi2.4; driver for supporting the AVM
1534           Fritz!Card PCI version 2 controller has been added. &merged;</para>
1535
1536         <para role="historic">The &man.ihfc.4; driver for supporting Cologne Chip
1537           Designs HFC devices under
1538           <application>isdn4bsd</application> has been
1539           added. &merged;</para>
1540
1541         <para role="historic">The &man.itjc.4; driver for supporting NETjet-S / Teles
1542           PCI-TJ devices under <application>isdn4bsd</application> has
1543           been added. &merged;</para>
1544
1545         <para role="historic">Experimental support for the Eicon.Diehl DIVA 2.0 and
1546           2.02 ISA PnP ISDN cards has been added to the &man.isic.4;
1547           <application>isdn4bsd</application> driver. &merged;</para>
1548
1549         <para role="historic">The &man.isic.4; driver now supports the Compaq Microcom
1550           610 ISDN ISA PnP card. &merged;</para>
1551
1552         <para role="historic">Active CAPI-based ISDN cards manufactured by AVM are now
1553           supported using the &man.i4bcapi.4; and the &man.iavc.4;
1554           driver.  The supported cards are the AVM B1 PCI and AVM B1
1555           ISA Basic Rate cards and the AVM T1 Primary Rate
1556           cards. &merged;</para>
1557
1558         <para role="historic">A new <literal>maxconnecttime</literal> keyword is now
1559           accepted in &man.isdnd.rc.5; files to limit the time a
1560           connection may remain open. &merged;</para>
1561
1562         <para role="historic">&man.isdnphone.8; now supports a <option>-k</option>
1563           option for sending messages via the keypad facility to a PBX
1564           or exchange office. &merged;</para>
1565
1566         <para><application>isdn4bsd</application> now supports Q.931
1567           subaddressing.</para>
1568
1569       </sect4>
1570
1571       <sect4 id="kame-kernel">
1572         <title>KAME</title>
1573
1574         <para role="historic">The IPv6 stack is now based on a snapshot based on the
1575           KAME Project's IPv6 snapshot as of 28 May, 2001.  Most of
1576           the items listed in this section are a result of this
1577           import.  <xref linkend="kame-userland"> lists userland
1578           updates to the KAME IPv6 stack. &merged;</para>
1579
1580         <para role="historic">&man.gif.4; is now based on RFC 2893, rather than RFC
1581           1933.  The <literal>IFF_LINK2</literal> interface flag can
1582           be used to control ingress filtering. &merged;</para>
1583
1584         <para role="historic"><application>IPsec</application> has received some
1585           enhancements, including the ability to use the Rijndael and
1586           SHA2 algorithms.  IPsec RC5 support has been removed due to
1587           patent issues. &merged;</para>
1588
1589         <para role="historic">&man.stf.4; now conforms to RFC 3056; the
1590           <literal>IFF_LINK2</literal> interface flag can be used to
1591           control ingress filtering. &merged;</para>
1592
1593         <para role="historic">IPv6 has better checking of illegal addresses (such as
1594           loopback addresses) on physical networks. &merged;</para>
1595
1596         <para role="historic">The <varname>IPV6_V6ONLY</varname> socket option is now
1597           completely supported.  The kernel's default behavior with
1598           respect to this option is controlled by the
1599           <varname>net.inet6.ip6.v6only</varname> sysctl
1600           variable. &merged;</para>
1601
1602         <para role="historic">RFC 3041 (Privacy Extensions for Stateless Address
1603           Autoconfiguration) is now supported.  It can be enabled via
1604           the <varname>net.inet6.ip6.use_tempaddr</varname> sysctl
1605           variable. &merged;</para>
1606       </sect4>
1607     </sect3>
1608   </sect2>
1609
1610   <sect2 id="security">
1611     <title>Security-Related Changes</title>
1612
1613     <para role="historic">&man.sysinstall.8; now allows the user to select one of two
1614       <quote>security profiles</quote> at install-time.  These
1615       profiles enable different levels of system security by enabling
1616       or disabling various system services in &man.rc.conf.5; on new
1617       installs. &merged;</para>
1618
1619     <para>A bug in which malformed ELF executable images can hang the
1620       system has been fixed (see security advisory
1621       FreeBSD-SA-00:41). &merged;</para>
1622
1623     <para>A security hole in Linux emulation was fixed (see security
1624       advisory FreeBSD-SA-00:42). &merged;</para>
1625
1626     <para role="historic">String-handling library calls in many programs were fixed to
1627       reduce the possibility of buffer overflow-related exploits.
1628       &merged;</para>
1629
1630     <para>TCP now uses stronger randomness in choosing its initial
1631       sequence numbers (see security advisory
1632       FreeBSD-SA-00:52). &merged;</para>
1633
1634     <para>Several buffer overflows in &man.tcpdump.1; were corrected
1635       (see security advisory FreeBSD-SA-00:61). &merged;</para>
1636
1637     <para>A security hole in &man.top.1; was corrected (see security
1638       advisory FreeBSD-SA-00:62). &merged;</para>
1639
1640     <para>A potential security hole caused by an off-by-one-error in
1641       &man.gethostbyname.3; has been fixed (see security advisory
1642       FreeBSD-SA-00:63). &merged;</para>
1643
1644     <para>A potential buffer overflow in the &man.ncurses.3; library,
1645       which could cause arbitrary code to be run from within
1646       &man.systat.1;, has been corrected (see security advisory
1647       FreeBSD-SA-00:68). &merged;</para>
1648
1649     <para>A vulnerability in &man.telnetd.8; that could cause it to
1650       consume large amounts of server resources has been fixed (see
1651       security advisory FreeBSD-SA-00:69). &merged;</para>
1652
1653     <para>The <literal>nat deny_incoming</literal> command in
1654       &man.ppp.8; now works correctly (see security advisory
1655       FreeBSD-SA-00:70). &merged;</para>
1656
1657     <para>A vulnerability in &man.csh.1;/&man.tcsh.1; temporary files
1658       that could allow overwriting of arbitrary user-writable files
1659       has been closed (see security advisory
1660       FreeBSD-SA-00:76). &merged;</para>
1661
1662     <para role="historic">The &man.ssh.1; binary is no longer SUID root by
1663       default. &merged;</para>
1664
1665     <para role="historic">Some fixes were applied to the Kerberos IV implementation
1666       related to environment variables, a possible buffer overrun, and
1667       overwriting ticket files. &merged;</para>
1668
1669     <para role="historic">&man.telnet.1; now does a better job of sanitizing its
1670       environment. &merged;</para>
1671
1672     <para>Several vulnerabilities in &man.procfs.5; were fixed (see
1673       security advisory FreeBSD-SA-00:77). &merged;</para>
1674
1675     <para>A bug in <application>OpenSSH</application> in which a
1676       server was unable to disable &man.ssh-agent.1; or
1677       <literal>X11Forwarding</literal> was fixed (see security
1678       advisory FreeBSD-SA-01:01). &merged;</para>
1679
1680     <para>A bug in &man.ipfw.8; and &man.ip6fw.8; in which inbound TCP
1681       segments could incorrectly be treated as being part of an
1682       <literal>established</literal> connection has been fixed (see
1683       security advisory FreeBSD-SA-01:08). &merged;</para>
1684
1685     <para>A bug in &man.crontab.1; that could allow users to read any
1686       file on the system in valid &man.crontab.5; syntax has been
1687       fixed (see security advisory FreeBSD-SA-01:09). &merged;</para>
1688
1689     <para>A vulnerability in &man.inetd.8; that could allow
1690       read-access to the initial 16 bytes of
1691       <groupname>wheel</groupname>-accessible files has been fixed
1692       (see security advisory FreeBSD-SA-01:11). &merged;</para>
1693
1694     <para>A bug in &man.periodic.8; that used insecure temporary files
1695       has been corrected (see security advisory
1696       FreeBSD-SA-01:12). &merged;</para>
1697
1698     <para><application>OpenSSH</application> now has code to prevent
1699       (instead of just mitigating through connection limits) an attack
1700       that can lead to guessing the server key (not host key) by
1701       regenerating the server key when an RSA failure is detected (see
1702       security advisory FreeBSD-SA-01:24). &merged;</para>
1703
1704     <para role="historic">A number of programs have had output formatting strings
1705       corrected so as to reduce the risk of
1706       vulnerabilities. &merged;</para>
1707
1708     <para role="historic">A number of programs that use temporary files now do so more
1709       securely. &merged;</para>
1710
1711     <para role="historic">A bug in ICMP that could cause an attacker to disrupt TCP and UDP
1712       <quote>sessions</quote> has been corrected. &merged;</para>
1713
1714     <para>A bug in &man.timed.8;, which caused it to crash if send
1715       certain malformed packets, has been corrected (see security
1716       advisory FreeBSD-SA-01:28). &merged;</para>
1717
1718     <para>A bug in &man.rwhod.8;, which caused it to crash if send
1719       certain malformed packets, has been corrected (see security
1720       advisory FreeBSD-SA-01:29). &merged;</para>
1721
1722     <para>A security hole in &os;'s FFS and EXT2FS implementations,
1723       which allowed a race condition that could cause users to have
1724       unauthorized access to data, has been fixed (see security
1725       advisory FreeBSD-SA-01:30). &merged;</para>
1726
1727     <para>A remotely-exploitable vulnerability in &man.ntpd.8; has
1728       been closed (see security advisory
1729       FreeBSD-SA-01:31). &merged;</para>
1730
1731     <para>A security hole in <application>IPFilter</application>'s
1732       fragment cache has been closed (see security advisory
1733       FreeBSD-SA-01:32). &merged;</para>
1734
1735     <para>Buffer overflows in &man.glob.3;, which could cause
1736       arbitrary code to be run on an FTP server, have been closed.  In
1737       addition, to prevent some forms of DOS attacks, &man.glob.3;
1738       allows specification of a limit on the number of pathname
1739       matches it will return.  &man.ftpd.8; now uses this feature (see
1740       security advisory FreeBSD-SA-01:33). &merged;</para>
1741
1742     <para>Initial sequence numbers in TCP are more thoroughly
1743       randomized (see security advisory FreeBSD-SA-01:39).  Due to
1744       some possible compatibility issues, the behavior of this
1745       security fix can be enabled or disabled via the
1746       <varname>net.inet.tcp.tcp_seq_genscheme</varname> sysctl
1747       variable.&merged;</para>
1748
1749     <para>A vulnerability in the &man.fts.3; routines (used by
1750       applications for recursively traversing a filesystem) could
1751       allow a program to operate on files outside the intended
1752       directory hierarchy.  This bug has been fixed (see security
1753       advisory FreeBSD-SA-01:40). &merged;</para>
1754
1755     <para role="historic"><application>OpenSSH</application> now switches to the
1756       user's UID before attempting to unlink the authentication
1757       forwarding file, nullifying the effects of a race.</para>
1758
1759     <para>A flaw allowed some signal handlers to remain in effect in a
1760       child process after being exec-ed from its parent.  This allowed
1761       an attacker to execute arbitrary code in the context of a setuid
1762       binary.  This flaw has been corrected (see security advisory
1763       FreeBSD-SA-01:42). &merged;</para>
1764
1765     <para>A remote buffer overflow in &man.tcpdump.1; has been fixed
1766       (see security advisory FreeBSD-SA-01:48). &merged;</para>
1767
1768     <para>A remote buffer overflow in &man.telnetd.8; has been fixed
1769       (see security advisory FreeBSD-SA-01:49). &merged;</para>
1770
1771     <para>The new <varname>net.inet.ip.maxfragpackets</varname> and
1772       <varname>net.inet.ip6.maxfragpackets</varname> sysctl variables
1773       limit the amount of memory that can be consumed by IPv4 and IPv6
1774       packet fragments, which defends against some denial of service
1775       attacks (see security advisory
1776       FreeBSD-SA-01:52). &merged;</para>
1777
1778     <para role="historic">All services in <filename>inetd.conf</filename> are now
1779       disabled by default for new installations.  &man.sysinstall.8;
1780       gives the option of enabling or disabling &man.inetd.8; on new
1781       installations, as well as editing
1782       <filename>inetd.conf</filename>. &merged;</para>
1783
1784     <para>A flaw in the implementation of the &man.ipfw.8;
1785       <literal>me</literal> rules on point-to-point links has been
1786       corrected.  Formerly, <literal>me</literal> filter rules would
1787       match the remote IP address of a point-to-point interface in
1788       addition to the intended local IP address (see security advisory
1789       FreeBSD-SA-01:53). &merged;</para>
1790
1791     <para>A vulnerability in &man.procfs.5;, which could allow a
1792       process to read sensitive information from another process's
1793       memory space, has been closed (see security advisory
1794       FreeBSD-SA-01:55). &merged;</para>
1795
1796     <para>The <literal>PARANOID</literal> hostname checking in
1797       <application>tcp_wrappers</application> now works as advertised
1798       (see security advisory FreeBSD-SA-01:56). &merged;</para>
1799
1800     <para>A local root exploit in &man.sendmail.8; has been closed
1801       (see security advisory FreeBSD-SA-01:57). &merged;</para>
1802
1803     <para>A remote root vulnerability in &man.lpd.8; has been closed
1804       (see security advisory FreeBSD-SA-01:58). &merged;</para>
1805
1806     <para>A race condition in &man.rmuser.8; that briefly exposed a
1807       world-readable <filename>/etc/master.passwd</filename> has been
1808       fixed (see security advisory FreeBSD-SA-01:59). &merged;</para>
1809
1810     <para>A vulnerability in <application>UUCP</application> has been
1811       closed (see security advisory FreeBSD-SA-01:62).  All
1812       non-<username>root</username>-owned binaries in standard system
1813       paths now have the <literal>schg</literal> flag set to prevent
1814       exploit vectors when run by &man.cron.8;, by
1815       <username>root</username>, or by a user other then the one owning
1816       the binary.  In addition, &man.uustat.1; is now run via
1817       <filename>/etc/periodic/daily/410.status-uucp</filename> as
1818       <username>uucp</username>, not <username>root</username>.  In
1819       &os; -CURRENT, <application>UUCP</application> has since been
1820       moved to the Ports Collection and no longer a part of the base
1821       system. &merged;</para>
1822
1823     <para role="historic">A security hole in the form of a buffer overflow in the
1824       &man.semop.2; system call has been closed. &merged;</para>
1825
1826     <para>A security hole in <application>OpenSSH</application>, which
1827       could allow users to execute code with arbitrary privileges if
1828       <literal>UseLogin yes</literal> was set, has been closed.  Note
1829       that the default value of this setting is
1830       <literal>UseLogin no</literal>.  (See security advisory
1831       FreeBSD-SA-01:63.) &merged;</para>
1832
1833     <para>The use of an insecure temporary directory by
1834       &man.pkg.add.1; could permit a local attacker to modify the
1835       contents of binary packages while they were being installed.
1836       This hole has been closed.  (See security advisory
1837       FreeBSD-SA-02:01.) &merged;</para>
1838
1839     <para>A race condition in &man.pw.8;, which could expose the
1840       contents of <filename>/etc/master.passwd</filename>, has been
1841       eliminated.  (See security advisory FreeBSD-SA-02:02.)
1842       &merged;</para>
1843
1844     <para>A bug in &man.k5su.8; could have allowed a process that had
1845       given up superuser privileges to regain them.  This bug has been
1846       fixed.  (See security advisory FreeBSD-SA-02:07.)
1847       &merged;</para>
1848
1849     <para>An <quote>off-by-one</quote> bug has been fixed in
1850       <application>OpenSSH</application>'s multiplexing code.  This bug
1851       could have allowed an authenticated remote user to cause
1852       &man.sshd.8; to execute arbitrary code with superuser
1853       privileges, or allowed a malicious SSH server to execute arbitrary
1854       code on the client system with the privileges of the client user.  (See security
1855       advisory <ulink
1856         url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:13.openssh.asc">FreeBSD-SA-02:13</ulink>.)
1857       &merged;</para>
1858
1859     <para>A programming error in <application>zlib</application> could
1860       result in attempts to free memory multiple times.  The
1861       &man.malloc.3;/&man.free.3; routines used in &os; are not
1862       vulnerable to this error, but applications receiving
1863       specially-crafted blocks of invalid compressed data could
1864       be made to function incorrectly or abort.  This
1865       <application>zlib</application> bug has been fixed.  For a
1866       workaround and solutions, see security advisory <ulink
1867       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:18.zlib.v1.2.asc">FreeBSD-SA-02:18</ulink>.
1868       &merged;</para>
1869
1870     <para>Bugs in the TCP SYN cache (<quote>syncache</quote>) and SYN
1871       cookie (<quote>syncookie</quote>) implementations, which could
1872       cause legitimate TCP/IP traffic to crash a machine, have been
1873       fixed.  For a workaround and patches, see security advisory
1874       <ulink
1875       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:20.syncache.asc">FreeBSD-SA-02:20</ulink>.
1876       &merged;</para>
1877
1878     <para>A routing table memory leak, which could allow a remote
1879       attacker to exhaust the memory of a target machine, has been
1880       fixed.  A workaround and patches can be found in security
1881       advisory <ulink
1882       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:21.tcpip.asc">FreeBSD-SA-02:21</ulink>.
1883       &merged;</para>
1884
1885     <para>A bug with memory-mapped I/O, which could cause a system
1886       crash, has been fixed.  For more information about a solution,
1887       see security advisory <ulink
1888       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:22.mmap.asc">FreeBSD-SA-02:22</ulink>.
1889       &merged;</para>
1890
1891     <para>A security hole, in which SUID programs could be made to
1892       read from or write to inappropriate files through manipulation
1893       of their standard I/O file descriptors, has been fixed.
1894       Information regarding a solution can be found in security
1895       advisory <ulink
1896       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:23.stdio.asc">FreeBSD-SA-02:23</ulink>.
1897       &merged;</para>
1898
1899     <para>Some unexpected behavior could be allowed with &man.k5su.8;
1900       because it does not require that an invoking user be a member of
1901       the <groupname>wheel</groupname> group when attempting to become
1902       the superuser (this is the case with &man.su.1;).  To avoid this
1903       situation, &man.k5su.8; is now installed non-SUID by default
1904       (effectively disabling it).  More information can be found in
1905       security advisory <ulink
1906       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:24.k5su.asc">FreeBSD-SA-02:24</ulink>.
1907       &merged;</para>
1908
1909     <para>Multiple vulnerabilities were found in the &man.bzip2.1;
1910       utility, which could allow files to be overwritten without
1911       warning or allow local users unintended access to files.  These
1912       problems have been corrected with a new import of
1913       <application>bzip2</application>.  For more information, see
1914       security advisory <ulink
1915       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:25.bzip2.asc">FreeBSD-SA-02:25</ulink>.
1916       &merged;</para>
1917
1918     <para>A bug has been fixed in the implementation of the TCP SYN
1919       cache (<quote>syncache</quote>), which could allow a remote
1920       attacker to deny access to a service when accept filters
1921       (see &man.accept.filter.9;) were in use.  This bug has been
1922       fixed; for more information, see security advisory <ulink
1923       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:26.accept.asc">FreeBSD-SA-02:26</ulink>.
1924       &merged;</para>
1925
1926     <para>Due to a bug in &man.rc.8;'s use of shell globbing, users
1927       may be able to remove the contents of arbitrary files if
1928       <filename>/tmp/.X11-unix</filename> does not exist and the
1929       system can be made to reboot.  This bug has been corrected (see
1930       security advisory <ulink
1931       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:27.rc.asc">FreeBSD-SA-02:27</ulink>).
1932       &merged;</para>
1933
1934     <para>A buffer overflow in the resolver, which could be exploited
1935       by a malicious domain name server or an attacker forging DNS
1936       messages, has been fixed.  See security advisory <ulink
1937       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:28.resolv.asc">FreeBSD-SA-02:28</ulink>
1938       for more details. &merged;</para>
1939
1940     <para>A buffer overflow in &man.tcpdump.1;, which could be triggered by
1941       badly-formed NFS packets, has been fixed.  See security advisory
1942       <ulink
1943       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:29.tcpdump.asc">FreeBSD-SA-02:29</ulink>
1944       for more details. &merged;</para>
1945
1946     <para>&man.ktrace.1; can no longer trace the operation of formerly
1947       privileged processes; this prevents the leakage of sensitive
1948       information that the process could have obtained before
1949       abandoning its privileges.  For a discussion of this issue, see
1950       security advisory
1951       <ulink
1952       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:30.ktrace.asc">FreeBSD-SA-02:30</ulink>
1953       for more details. &merged;</para>
1954
1955     <para>A race condition in &man.pppd.8;, which could be used to
1956       change the permissions of an arbitrary file, has been corrected.
1957       For more information, see security advisory <ulink
1958       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:32.pppd.asc">FreeBSD-SA-02:32</ulink>.
1959       &merged;</para>
1960
1961     <para>Multiple buffer overflows in
1962       <application>OpenSSL</application> have been corrected, by way
1963       of an upgrade to the base system version of
1964       <application>OpenSSL</application>.  More details can be found
1965       in security advisory <ulink
1966       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:33.openssl.asc">FreeBSD-SA-02:33</ulink>.
1967       &merged;</para>
1968
1969     <para>A heap buffer overflow in the XDR decoder has been fixed.
1970       For more details, see security advisory <ulink
1971       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:34.rpc.asc">FreeBSD-SA-02:34</ulink>.
1972       &merged;</para>
1973
1974     <para>A bug that could allow local users to read and write
1975       arbitrary blocks on an FFS filesystem has been corrected.  More
1976       details can be found in security advisory <ulink
1977       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:35.ffs.asc">FreeBSD-SA-02:35</ulink>.
1978       &merged;</para>
1979
1980     <para>A bug in the NFS server code, which could allow a remote
1981       denial of service attack, has been fixed.  Security advisory <ulink
1982       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:36.nfs.asc">FreeBSD-SA-02:36</ulink>
1983       has more details. &merged;</para>
1984
1985     <para>A bug that could allow local users to panic a system using
1986       the &man.kqueue.2; mechanism has been fixed.  More information
1987       is contained in security advisory <ulink
1988       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:37.kqueue.asc">FreeBSD-SA-02:37</ulink>.
1989       &merged;</para>
1990
1991     <para>Several bounds-checking bugs in system calls, which could
1992       result in some system calls returning a large portion of kernel
1993       memory, have been fixed.  More information can be found in
1994       security advisory <ulink
1995       url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:38.signed-error.asc">FreeBSD-SA-02:38</ulink>.
1996       &merged;</para>
1997
1998   </sect2>
1999
2000   <sect2 id="userland">
2001     <title>Userland Changes</title>
2002
2003     <para role="historic">If the first argument to &man.ancontrol.8; or
2004       &man.wicontrol.8; doesn't start with a <literal>-</literal>, it
2005       is assumed to be an interface. &merged;</para>
2006
2007     <para role="historic">&man.apmd.8; now has the ability to monitor battery levels
2008       and execute commands based on percentage or minutes of battery
2009       life remaining via the <literal>apm_battery</literal>
2010       configuration directive.  See the commented-out examples in
2011       <filename>/etc/apmd.conf</filename> for the
2012       syntax. &merged;</para>
2013
2014     <para role="historic">&man.arp.8; now prints the applicable interface name for
2015       each ARP entry. &merged;</para>
2016
2017     <para>&man.arp.8; now prints <literal>[fddi]</literal> or
2018       <literal>[atm]</literal> tags for addresses on interfaces of
2019       those types.</para>
2020
2021     <para>The &man.asa.1; utility, to interpret FORTRAN
2022       carriage-control characters, has been added.</para>
2023
2024     <para>&man.at.1; now supports the <option>-r</option> command-line
2025       option to remove jobs and the <option>-t</option> option to
2026       specify times in POSIX time format.</para>
2027
2028     <para role="historic">&man.atacontrol.8; has been added to control various aspects
2029       of the &man.ata.4; driver. &merged;</para>
2030
2031     <para>The system &man.awk.1; now refers to
2032       <application>BWK awk</application>.</para>
2033
2034     <para>&man.basename.1; now accept <option>-a</option> and
2035       <option>-s</option> flags, which allow it to perform the
2036       &man.basename.3; function on multiple files.</para>
2037
2038     <para>&man.biff.1; now accepts a <option>b</option> argument to
2039       enable <quote>bell notification</quote> of new mail (which does
2040       not disturb the terminal contents as <command>biff y</command>
2041       would). &merged;</para>
2042
2043     <para>&man.biff.1; now uses the first terminal associated with the
2044       standard input, standard output or standard error file
2045       descriptor, in that order.  Thus, it is possible to use the
2046       redirection facilities of a shell (<command>biff n &lt;
2047       /dev/ttyp1</command>) to toggle the notification for other
2048       terminals.</para>
2049
2050     <para arch="pc98" role="historic">&man.boot98cfg.8;, a PC-98 boot manager
2051       installation and configuration utility, has been
2052       added. &merged;</para>
2053
2054     <para role="historic">&man.burncd.8; now supports a <option>-m</option> option for
2055       multisession mode (the default behavior now is to close disks as
2056       single-session).  A <option>-l</option> option to take a list of
2057       image files from a filename was also added;
2058       <filename>-</filename> can be used as a filename for
2059       <literal>stdin</literal>. &merged;</para>
2060
2061     <para>&man.burncd.8; now supports Disk At Once (DAO) mode,
2062       selectable via the <option>-d</option> flag.</para>
2063
2064     <para>&man.burncd.8; now has the ability to write VCDs/SVCDs.</para>
2065
2066     <para role="historic">&man.c89.1; has been converted from a shell script to a
2067       binary executable, fixing some minor bugs. &merged;</para>
2068
2069     <para>&man.calendar.1; now takes a <option>-W</option> option,
2070       which operates similar to <option>-A</option> but without
2071       special treatment at weekends, and a <option>-F</option>option
2072       to change the notion of <quote>Friday</quote>.</para>
2073
2074     <para arch="i386,pc98" role="historic">A minimalized version of &man.camcontrol.8; is
2075       now available on the installation floppy.  This allows it to
2076       rescan for devices that have been connected after booting, or to
2077       show the devices attached to SCSI busses (e. g. from within the
2078       <quote>emergency holographic shell</quote>). &merged;</para>
2079
2080     <para role="historic">&man.cat.1; now has the ability to read from UNIX-domain
2081       sockets. &merged;</para>
2082
2083     <para>&man.catman.1; is now a C program, instead of a
2084       Perl script.</para>
2085
2086     <para role="historic">&man.cdcontrol.1; now supports a <literal>cdid</literal>
2087       command, which calculates and displays the CD serial number,
2088       using the same algorithm used by the CDDB
2089       database. &merged;</para>
2090
2091     <para role="historic">&man.cdcontrol.1; now uses the <envar>CDROM</envar>
2092       environment variable to pick a default device. &merged;</para>
2093
2094     <para role="historic">&man.cdcontrol.1; now supports <literal>next</literal> and
2095       <literal>prev</literal> commands to skip forwards or backwards a
2096       specified number of tracks while playing an audio
2097       CD. &merged;</para>
2098
2099     <para>On ATAPI CDROM drives, &man.cdcontrol.1; now supports a
2100       <literal>speed</literal> command to set the maximum speed to be
2101       used by the drive. &merged;</para>
2102
2103     <para>&man.chflags.1; has moved from <filename>/usr/bin</filename>
2104       to <filename>/bin</filename>.</para>
2105
2106     <para role="historic">&man.chio.1; now has the ability to specify elements by
2107       volume tag instead of by their physical location as well as the
2108       ability to return an element to its previous
2109       location. &merged;</para>
2110
2111     <para>&man.chmod.1; now supports a <option>-h</option> for
2112       changing the mode of a symbolic link.</para>
2113
2114     <para>&man.chmod.1; now also, when the mode is modified, prints
2115     the old and new modes if the <option>-v</option> option is
2116     specified more than once.</para>
2117
2118     <para role="historic">&man.chown.8; now correctly follows symbolic links named as
2119       command line arguments if run without
2120       <option>-R</option>. &merged;</para>
2121
2122     <para>&man.chown.8; no longer takes <literal>.</literal> as a
2123       user/group delimeter.  This change was made to support usernames
2124       containing a <literal>.</literal>.</para>
2125
2126     <para>Use of the <literal>CSMG_*</literal> macros no longer
2127       require inclusion of
2128       <filename>&lt;sys/param.h&gt;</filename></para>
2129
2130     <para role="historic">&man.col.1; now takes a <option>-p</option> flag to force
2131       unknown control sequences to be passed through
2132       unchanged. &merged;</para>
2133
2134     <para role="historic">The <filename>compat3x</filename> distribution has been
2135       updated to include libraries present in &os;
2136       3.5.1-RELEASE. &merged;</para>
2137
2138     <para>A <filename>compat4x</filename> distribution has been added
2139       for compatibility with &os; 4-STABLE.</para>
2140
2141     <para role="historic">&man.config.8; is now better about converting various
2142       warnings that should have been errors into actual fatal errors
2143       with an exit code.  This ensures that <literal>make
2144       buildkernel</literal> doesn't quietly ignore them and build a
2145       bogus kernel without a human to read the errors. &merged;</para>
2146
2147     <para role="historic">A number of buffer overflows in &man.config.8; have been
2148       fixed. &merged;</para>
2149
2150     <para>&man.cp.1; now takes a (nonstandard) <option>-n</option>
2151       option to automatically answer <quote>no</quote> when it would
2152       ask to overwrite a file. &merged;</para>
2153
2154     <para>A new &man.csplit.1; utility, which splits files based on
2155       context, has been added.</para>
2156
2157     <para role="historic">&man.ctags.1; no longer creates a corrupt tags file if the
2158       source file used <literal>//</literal> (C++-style)
2159       comments. &merged;</para>
2160
2161     <para>&man.ctags.1; now creates tags for typedefs, structs,
2162       unions, and enums by default (implying the <option>-t</option>
2163       option).  The new <option>-T</option> reverts to the old
2164       behavior.</para>
2165
2166     <para>The &man.daemon.8; program, a command-line interface to
2167       &man.daemon.3;, has been added.  It detaches itself from its
2168       controlling terminal and executes a program specified on the
2169       command line.  This allows the user to run an arbitrary program
2170       as if it were written to be a daemon.</para>
2171
2172     <para>&man.devinfo.8;, a simple tool to print the device tree and resource
2173       usage by devices, has been added.</para>
2174
2175     <para role="historic">&man.df.1; now takes a <option>-l</option> option to only
2176       display information about locally-mounted
2177       filesystems. &merged;</para>
2178
2179     <para role="historic">&man.disklabel.8; now supports partition sizes expressed in
2180       kilobytes, megabytes, or gigabytes, in addition to
2181       sectors. &merged;</para>
2182
2183     <para>diskpart(8) has been declared obsolete, and has been
2184       removed.</para>
2185
2186     <para role="historic">&man.dmesg.8; now has a <option>-a</option> option to show
2187       the entire message buffer, including &man.syslogd.8; records and
2188       <filename>/dev/console</filename> output. &merged;</para>
2189
2190     <para role="historic">&man.du.1; now takes a <option>-I</option> command-line flag
2191       to ignore/skip files and subdirectories matching a specified
2192       shell-glob mask. &merged;</para>
2193
2194     <para role="historic">&man.dump.8; now supports inheritance of the
2195       <literal>nodump</literal> flag down a hierarchy. &merged;</para>
2196
2197     <para role="historic">The <option>-T</option> option to &man.dump.8; no longer
2198       swallows an extra argument. &merged;</para>
2199
2200     <para role="historic">&man.dump.8; has a new <option>-D</option> option, allowing
2201       the path to the <filename>/etc/dumpdates</filename> file to be
2202       changed. &merged;</para>
2203
2204     <para role="historic">&man.dump.8; now supplies progress information in its
2205       process title, useful for monitoring automated
2206       backups. &merged;</para>
2207
2208     <para>&man.dump.8; now supports a new <option>-S</option> flag to allow
2209       it to just print out the dump size estimates and exit. &merged;</para>
2210
2211     <para role="historic">&man.edquota.8; now takes a <option>-f</option> option to
2212       allow limiting the prototype quota distribution (specified with
2213       <option>-p</option>) to a single filesystem. &merged;</para>
2214
2215     <para role="historic"><filename>/etc/rc.firewall</filename> and
2216       <filename>/etc/rc.firewall6</filename> will no longer add their own
2217       hardcoded rules in the cases of a rules file in the
2218       <varname>firewall_type</varname> variable or a non-existent
2219       firewall type.  (The motivation for this change is to avoid
2220       acting on assumptions about a site's firewall policies.)  In
2221       addition, the <literal>closed</literal> firewall type now works
2222       as documented in the &man.rc.firewall.8; manual page. &merged;</para>
2223
2224     <para role="historic">The functionality of <filename>/etc/security</filename> has
2225       been been moved into a set of scripts under the &man.periodic.8;
2226       framework, to make local customization easier and more
2227       maintainable.  These scripts now reside in
2228       <filename>/etc/periodic/security/</filename>. &merged;</para>
2229
2230     <para>&man.expr.1; is now compliant with the POSIX Utility Syntax
2231       Guidelines.  Some programs depend on the old, historic behavior
2232       (the <filename role="package">devel/libtool</filename>
2233       port/package was/is a notable example).  In these situations,
2234       the <envar>EXPR_COMPAT</envar> environment variable can be
2235       defined, which causes &man.expr.1; to behave more like previous
2236       versions.</para>
2237
2238     <para>&man.fbtab.5; now accepts glob matching patterns for target
2239       devices, not just individual devices and directories.</para>
2240
2241     <para arch="i386">&man.fdisk.8; no longer attempts to search for a
2242       device if none has been specified on the command line, but
2243       instead tries to figure out the default device name from the
2244       root device.</para>
2245
2246     <para>&man.fdread.1;, a program to read data from floppy disks,
2247       has been added.  It is a counterpart to &man.fdwrite.1; and is
2248       designed to provide a means of recovering at least some data
2249       from bad media, and to obviate for a complex invocation of
2250       &man.dd.1;.</para>
2251
2252     <para role="historic">&man.find.1; now takes the <option>-empty</option> flag,
2253       which returns true if a file or directory is
2254       empty. &merged;</para>
2255
2256     <para role="historic">&man.find.1; now takes the <option>-iname</option> and
2257       <option>-ipath</option> primaries for case-insensitive matches,
2258       and the <option>-regexp</option> and <option>-iregexp</option>
2259       primaries for regular-expression matches.  The
2260       <option>-E</option> flag now enables extended regular
2261       expressions. &merged;</para>
2262
2263     <para role="historic">&man.find.1; now has the <option>-anewer</option>,
2264       <option>-cnewer</option>, <option>-mnewer</option>,
2265       <option>-okdir</option>, and <option>-newer[acm][acmt]</option>
2266       primaries for comparisons of file timestamps.  The latter
2267       primaries can be specified with various units of
2268       time. &merged;</para>
2269
2270     <para role="historic">&man.finger.1; now has the ability to support fingering
2271       aliases, via the &man.finger.conf.5; file. &merged;</para>
2272
2273     <para>&man.finger.1; now has support for a
2274       <filename>.pubkey</filename> file. &merged;</para>
2275
2276     <para>&man.finger.1; now supports a <option>-g</option> flag to
2277       restrict the printing of GECOS information to the user's full
2278       name only. &merged;</para>
2279
2280     <para>&man.finger.1; now supports the <option>-4</option> and
2281       <option>-6</option> flags to specify an address family for
2282       remote queries. &merged;</para>
2283
2284     <para role="historic">&man.fmt.1; has been rewritten; the rewrite fixes a number
2285       of bugs compared to its prior behavior. &merged;</para>
2286
2287     <para role="historic">&man.fmtcheck.3;, a function for checking consistency of
2288       format string arguments, has been added. &merged;</para>
2289
2290     <para>&man.fold.1; now supports a <option>-b</option> flag to
2291       break at byte positions and a <option>-s</option> flag to break at
2292       word boundaries. &merged;</para>
2293
2294     <para role="historic">&man.fsdb.8; now supports a <literal>blocks</literal>
2295       command to list the blocks allocated by a particular
2296       inode. &merged;</para>
2297
2298     <para>&man.fsck.8; wrappers have been imported; this feature
2299       provides infrastructure for &man.fsck.8; to work on different
2300       types of filesystems (analogous to &man.mount.8;).</para>
2301
2302     <para>The behavior of &man.fsck.8; when dealing with various
2303       passes (a la <filename>/etc/fstab</filename>) has been modified
2304       to accommodate multiple-disk filesystems.</para>
2305
2306     <para>&man.fsck.8; now has support for foreground
2307       (<option>-F</option>) and background (<option>-B</option>)
2308       checks.  Traditionally, &man.fsck.8; is invoked before the
2309       filesystems are mounted and all checks are done to completion at
2310       that time.  If background checking is available, &man.fsck.8; is
2311       invoked twice.  It is first invoked at the traditional time,
2312       before the filesystems are mounted, with the <option>-F</option>
2313       flag to do checking on all the filesystems that cannot do
2314       background checking.  It is then invoked a second time, after
2315       the system has completed going multiuser, with the
2316       <option>-B</option> flag to do checking on all the filesystems
2317       that can do background checking.  Unlike the foreground
2318       checking, the background checking is started asynchronously so
2319       that other system activity can proceed even on the filesystems
2320       that are being checked.  Boot-time enabling of this feature is
2321       controlled by the
2322       <varname>background_fsck</varname> option in &man.rc.conf.5;.</para>
2323
2324     <para role="historic">Shortly after the receipt of a <literal>SIGINFO</literal>
2325       signal (normally control-T from the controlling tty),
2326       &man.fsck.ffs.8; will now output a line indicating the current
2327       phase number and progress information relevant to the current
2328       phase. &merged;</para>
2329
2330     <para>&man.fsck.ffs.8; now supports background filesystem checks
2331       to mounted FFS filesystems with the <option>-B</option> option
2332       (softupdates must be enabled on these filesystems).  The
2333       <option>-F</option> flag now determines whether a specified
2334       filesystem needs foreground checking.</para>
2335
2336     <para role="historic">A new &man.fsck.msdosfs.8; utility has been added to check
2337       the consistency of MS-DOS filesystems. &merged;</para>
2338
2339     <para role="historic">&man.ftpd.8; now supports a <option>-r</option> flag for
2340       read-only mode and a <option>-E</option> flag to disable
2341       <literal>EPSV</literal>.  It also has some fixes to reduce
2342       information leakage and the ability to specify compile-time port
2343       ranges. &merged;</para>
2344
2345     <para>&man.ftpd.8; now supports <option>-o</option> and
2346       <option>-O</option> options to disable the
2347       <literal>RETR</literal> command; the former for everybody, and
2348       the latter only for guest users.  Coupled with
2349       <option>-A</option> and appropriate file permissions, these can
2350       be used to create a relatively safe anonymous FTP drop box for
2351       others to upload to.</para>
2352
2353     <para arch="i386,pc98" role="historic">&man.gdb.1; now supports hardware
2354       watchpoints (using the kernel's debug register + support that
2355       has been introduced in &os; 4.0). &merged;</para>
2356
2357     <para role="historic">The &man.getprogname.3; and &man.setprogname.3; library
2358       functions have been added to manipulate the name of the current
2359       program.  They are used by error-reporting routines to produce
2360       consistent output. &merged;</para>
2361
2362     <para>gifconfig(8) is obsolete and has been removed.  Its
2363       functionality is now handled by the <option>tunnel</option> and
2364       <option>deletetunnel</option> commands of
2365       &man.ifconfig.8;.</para>
2366
2367     <para>&man.gprof.1; now has a <option>-K</option> option to enable
2368       dynamic symbol resolution from the currently-running kernel.
2369       With this change, properly-compiled KLD modules are now able to
2370       be profiled.</para>
2371
2372     <para arch="ia64">The gpt tool for manipulating EFI GPT
2373       partitions has been added.</para>
2374
2375     <para role="historic">&man.growfs.8;, a utility for growing FFS filesystems, has
2376       been added.  &man.ffsinfo.8;, a utility for dump all the
2377       meta-information of an existing filesystem, has also been
2378       added. &merged;</para>
2379
2380     <para role="historic">The &man.groups.1; and &man.whoami.1; shell scripts are now
2381       unnecessary; their functionality has been completely folded into
2382       &man.id.1;. &merged;</para>
2383
2384     <para>The ibcs(8), linux(8), osf1(8), and
2385       svr4(8) scripts, whose sole purpose was to load emulation
2386       kernel modules, have been removed.  The kernel module system
2387       will automatically load them as needed to fulfill
2388       dependencies.</para>
2389
2390     <para role="historic">&man.indent.1; has gained some new formatting
2391       options. &merged;</para>
2392
2393     <para role="historic">&man.ifconfig.8; can set the link-layer address of
2394       an interface using the <option>link</option> parameter.
2395       &merged;</para>
2396
2397     <para role="historic">&man.ifconfig.8; can now accept addresses in slash/CIDR
2398     notation. &merged;</para>
2399
2400     <para role="historic">&man.ifconfig.8; now has support for setting parameters for
2401       IEEE 802.11 wireless network devices.  &man.wi.4; and &man.an.4;
2402       devices are supported, and partial support is provided for
2403       &man.awi.4; devices. &merged;</para>
2404
2405     <para role="historic">&man.ifconfig.8; no longer displays the list of supported
2406       media by default.  Instead it displays it when the
2407       <option>-m</option> flag is given. &merged;</para>
2408
2409     <para role="historic">The syntax of &man.inetd.8;'s support for &man.faithd.8; is
2410       now compatible with that of other BSDs. &merged;</para>
2411
2412     <para role="historic">The <literal>ident</literal> protocol support in
2413       &man.inetd.8; has been cleaned up and updated. &merged;</para>
2414
2415     <para role="historic">&man.inetd.8; now has the ability to manage UNIX-domain
2416       sockets. &merged;</para>
2417
2418     <para>By default, &man.inetd.8; is no longer run by &man.rc.8; at
2419       boot-time, although &man.sysinstall.8; gives the option of
2420       enabling it during binary installations.  &man.inetd.8; can also
2421       be enabled by adding the following line to
2422       <filename>/etc/rc.conf</filename>:</para>
2423
2424     <programlisting>inetd_enable="YES"</programlisting>
2425
2426     <para role="historic">&man.install.1; has a number of new features, including the
2427       <option>-b</option> and <option>-B</option> options for backing up
2428       existing target files and the <option>-S</option> option for
2429       <quote>safe</quote> (atomic copy) operation.  The
2430       <option>-c</option> (copy) flag is now the default, and the
2431       <option>-D</option> (debugging) flag has been withdrawn.
2432       &man.install.1; now issues a warning if <option>-d</option>
2433       (create directories) and <option>-C</option> (copy changed files
2434       only) are used together. &merged;</para>
2435
2436     <para role="historic">IP Filter is now supported by the &man.rc.conf.5; boot-time
2437       configuration and initialization. &merged;</para>
2438
2439     <para role="historic">&man.ipfstat.8; now supports the <option>-t</option> option
2440       to turn on a &man.top.1;-like display. &merged;</para>
2441
2442     <para role="historic">&man.ipfw.8; will now avoid the display of dynamic firewall
2443       rules unless the <option>-d</option> flag is passed to it.  The
2444       <option>-e</option> option lists expired dynamic
2445       rules. &merged;</para>
2446
2447     <para role="historic">&man.ipfw.8; has a new feature (<literal>me</literal>) that
2448       allows for packet matching on interfaces with
2449       dynamically-changing IP addresses. &merged;</para>
2450
2451     <para role="historic">&man.ipfw.8; has a new <literal>limit</literal> type of
2452       firewall rule, which limits the number of sessions between
2453       address pairs. &merged;</para>
2454
2455     <para>&man.ipfw.8; filter rules can now match on the value of the
2456       IPv4 precedence field.</para>
2457
2458     <para role="historic">&man.ip6fw.8; now has the ability to use a preprocessor and
2459       use the <option>-q</option> (quiet) flag when reading from a
2460       file. &merged;</para>
2461
2462     <para role="historic">&man.ispppcontrol.8; has been deleted, and its functionality
2463       has been folded into &man.spppcontrol.8;. &merged;</para>
2464
2465     <para role="historic">&man.k5su.8; is no longer installed SUID
2466       <username>root</username> by default.  Users requiring this
2467       feature can either manually change the permissions on the
2468       &man.k5su.8; executable or add
2469       <literal>ENABLE_SUID_K5SU=yes</literal> to
2470       <filename>/etc/make.conf</filename> before a source
2471       upgrade. &merged;</para>
2472
2473     <para>&man.kbdmap.1; and &man.vidfont.1; have been converted from
2474       Perl to C.</para>
2475
2476     <para role="historic">&man.kenv.1;, a command to dump the kernel environment, has
2477       been added. &merged;</para>
2478
2479     <para>&man.kenv.1; now has the ability to set or delete kernel
2480       environment variables.</para>
2481
2482     <para role="historic">&man.keyinfo.1; is now a C program, rather than a Perl
2483       script. &merged;</para>
2484
2485     <para>The kget(8) utility has been removed (it was only
2486       useful for UserConfig, which is not present in &os;
2487       &release.current;).</para>
2488
2489     <para role="historic">&man.killall.1; is now a C program, rather than a Perl
2490       script.  As a result, its <option>-m</option> option now uses
2491       the regular expression syntax of &man.regex.3;, rather than that
2492       of Perl. &merged;</para>
2493
2494     <para>&man.killall.1; no longer tries to kill zombie processes
2495       unless the <option>-z</option> flag is specified.</para>
2496
2497     <para role="historic">The &man.kldconfig.8; utility has been added to make it
2498       easier to manipulate the kernel module search
2499       path. &merged;</para>
2500
2501     <para>ktrdump, a utility to dump the ktr trace buffer from
2502       userland, has been added.</para>
2503
2504     <para role="historic">&man.last.1; now implements a <option>-d</option> that
2505       provides a <quote>snapshot</quote> of who was logged in at a
2506       particular date and time. &merged;</para>
2507
2508     <para role="historic">&man.last.1; now supports a <option>-y</option> flag, which
2509       causes the year to be included in the session start time. &merged;</para>
2510
2511     <para role="historic">The &man.lastlogin.8; utility, which prints the last login
2512       time of each user, has been imported from
2513       NetBSD. &merged;</para>
2514
2515     <para role="historic">&man.ldconfig.8; now checks directory ownerships and
2516       permissions for greater security; these checks can be disabled
2517       with the <option>-i</option> flag. &merged;</para>
2518
2519     <para role="historic">&man.ldd.1; can now be used on shared libraries, in addition
2520       to executables. &merged;</para>
2521
2522     <para>&man.ldd.1; now supports a <option>-a</option> flag to list
2523       all the objects that are needed by each loaded object.</para>
2524
2525     <para><filename>libc</filename> is now thread-safe by default;
2526       <filename>libc_r</filename> contains only thread
2527       functions.</para>
2528
2529     <para role="historic"><filename>libcrypt</filename> and
2530       <filename>libdescrypt</filename> have been unified to provide a
2531       configurable password authentication hash library.  Both the md5
2532       and des hash methods are provided unless the des hash is
2533       specifically compiled out. &merged;</para>
2534
2535     <para role="historic"><filename>libcrypt</filename> now has support for Blowfish
2536       password hashing. &merged;</para>
2537
2538     <para arch="i386" role="historic"><filename>libdisk</filename> can now do
2539       install-time configuration of the <filename>boot0</filename>
2540       boot loader. &merged;</para>
2541
2542     <para role="historic"><filename>libstand</filename> now has support for
2543       filesystems containing
2544       <application>bzip2</application>-compressed
2545       files. &merged;</para>
2546
2547     <para><filename>libstand</filename> now has support for
2548       overwriting the contents of a file on a UFS filesystem (it
2549       cannot expand or truncate files because the filesystem may be
2550       dirty or inconsistent).</para>
2551
2552     <para role="historic"><filename>libstand</filename> now has support for loading
2553       large kernels and modules split across several physical
2554       media. &merged;</para>
2555
2556     <para role="historic">The default TCP port range used by
2557       <filename>libfetch</filename> for passive FTP retrievals has
2558       changed; this affects the behavior of &man.fetch.1;, which has
2559       gained the <option>-U</option> option to restore the old
2560       behavior. &merged;</para>
2561
2562     <para role="historic"><filename>libfetch</filename> now has support for an
2563       authentication callback. &merged;</para>
2564
2565     <para role="historic"><filename>libfetch</filename> now has support for a
2566       <envar>HTTP_USER_AGENT</envar> environment
2567       variable. &merged;</para>
2568
2569     <para><filename>libgmp</filename> has been superceded by
2570       <filename>libmp</filename>.
2571
2572     <para>The functions from <filename>libposix1e</filename> have been
2573       integrated into <filename>libc</filename>.</para>
2574
2575     <para role="historic"><filename>libusb</filename> has been renamed as
2576       <filename>libusbhid</filename>, following NetBSD's naming
2577       conventions. &merged;</para>
2578
2579     <para role="historic">&man.ln.1; now takes an <option>-i</option> option to
2580       request user confirmation before overwriting an existing
2581       file. &merged;</para>
2582
2583     <para role="historic">&man.ln.1; now takes a <option>-h</option> flag to avoid
2584       following a target that is a link, with a <option>-n</option>
2585       flag for compatibility with other
2586       implementations. &merged;</para>
2587
2588     <para>&man.lock.1; now accepts a <option>-v</option> to disable
2589       switching VTYs while the current terminal is locked.  This permits
2590       locking the entire console from a single terminal.</para>
2591
2592     <para role="historic">&man.logger.1; can now send messages directly to a remote
2593       syslog. &merged;</para>
2594
2595     <para role="historic">&man.login.1; now exports environment variables set by
2596       <application>PAM</application> modules. &merged;</para>
2597
2598     <para role="historic">&man.lpc.8; has been improved; <command>lpc clean</command>
2599       is now somewhat safer, and a new <command>lpc tclean</command>
2600       command has been added to check to see what files would be
2601       removed by <command>lpc clean</command>. &merged;</para>
2602
2603     <para role="historic">&man.lpd.8; now takes two new options: <option>-c</option>
2604       will log all connection errors to &man.syslogd.8;, while
2605       <option>-W</option> will allow connections from non-reserved
2606       ports. &merged;</para>
2607
2608     <para role="historic">&man.lpd.8; now has some support for
2609       <literal>o</literal>-type print-file actions in its control
2610       files, which allows printing of PostScript files generated by
2611       <application>MacOS</application> 10.1. &merged;</para>
2612
2613     <para role="historic">&man.lpd.8; now recognizes the <option>-s</option> flag as
2614       the preferred synonym for <option>-p</option> (these flags
2615       cause &man.lpd.8; not to open a socket for network print
2616       jobs). &merged;</para>
2617
2618     <para role="historic">&man.lpd.8; now implements a new <literal>rc</literal>
2619       printcap option.  When specified in a print queue for a remote
2620       host, boolean option causes &man.lpd.8; to resend the data file
2621       for each copy the user requested via <command>lpr
2622       -#<replaceable>n</replaceable></command>. &merged;</para>
2623
2624     <para role="historic">Catching up with most other network utilities in the base
2625       system, &man.lpr.1;, &man.lpd.8;, &man.syslogd.8;, and
2626       &man.logger.1; are now all IPv6-capable. &merged;</para>
2627
2628     <para role="historic"><command>lprm -</command> now works for remote printer
2629       queues. &merged;</para>
2630
2631     <para role="historic">&man.ls.1; can produce colorized listings with the
2632       <option>-G</option> flag (and appropriate terminal support).
2633       The <envar>CLICOLOR</envar> environment variable can be set to
2634       enable colorized listings by default. &merged;</para>
2635
2636     <para role="historic">&man.ls.1; now accepts a <option>-h</option> flag, which
2637       when combined with the <option>-l</option> flag, causes file
2638       sizes to be printed with unit suffixes, such that the number of
2639       digits printed is fewer than four. &merged;</para>
2640
2641     <para>The &man.ls.1; program now supports a <option>-m</option>
2642       flag to list files across a page, a <option>-p</option> flag to
2643       force printing of a <literal>/</literal> after directories, and
2644       a <option>-x</option> flag to sort filenames across a
2645       page. &merged;</para>
2646
2647     <para role="historic">&man.m4.1; now accepts a <option>-s</option> flag to cause
2648       it to emit <literal>#line</literal> directives for use by
2649       &man.cpp.1;. &merged;</para>
2650
2651     <para role="historic">&man.mail.1; now takes a <option>-E</option> flag to avoid
2652       sending messages with empty bodies. &merged;</para>
2653
2654     <para role="historic">&man.make.1; has gained the <literal>:C///</literal>
2655       (regular expression substitution), <literal>:L</literal>
2656       (lowercase), and <literal>:U</literal> (uppercase) variable
2657       modifiers.  These were added to reduce the differences between
2658       the &os; and OpenBSD/NetBSD &man.make.1; programs.
2659       &merged;</para>
2660
2661     <para role="historic">Bugs in &man.make.1;, among which include broken null suffix
2662       behavior, bad assumptions about current directory permissions,
2663       and potential buffer overflows, have been fixed. &merged;</para>
2664
2665     <para role="historic">The new <varname>CPUTYPE</varname>
2666       <filename>make.conf</filename> variable controls the compilation
2667       of processor-specific optimizations in various pieces of code
2668       such as <application>OpenSSL</application>. &merged;</para>
2669
2670     <para role="historic">The &os; <filename>Makefile</filename> infrastructure now
2671       supports the <varname>WARNS</varname> directive from NetBSD.
2672       This directive controls the addition of compiler warning flags
2673       to <varname>CFLAGS</varname> in a relatively compiler-neutral
2674       manner. &merged;</para>
2675
2676     <para>&man.makewhatis.1; is now a C program, instead of a
2677       Perl script.</para>
2678
2679     <para>&man.man.1; is no longer installed SUID
2680       <username>man</username>, in order to reduce vulnerabilities
2681       associated with generating <quote>catpages</quote> (preformatted
2682       manual pages cached for repeated viewing).  As a result,
2683       &man.man.1; can no longer create system catpages on a regular
2684       user's behalf.  It is still able to do so if the user has write
2685       permissions to the directory holding catpages (e.g. a user's own
2686       manpages) or if the running user is
2687       <username>root</username>.</para>
2688
2689     <para arch="ia64">The mca utility, for decoding machine check
2690       records, has been added.</para>
2691
2692     <para>The &man.mdmfs.8; command has been added; it is a wrapper
2693       around &man.mdconfig.8;, &man.disklabel.8;, &man.newfs.8;, and
2694       &man.mount.8; that mimics the command line option set of the
2695       deprecated &man.mount.mfs.8;.</para>
2696
2697     <para role="historic">&man.mergemaster.8; now sources an
2698       <filename>/etc/mergemaster.rc</filename> file and also prompts
2699       the user to run recommended commands (such as
2700       <command>newaliases</command>) as needed. &merged;</para>
2701
2702     <para role="historic">&man.mergemaster.8; now supports two new flags.
2703       The <option>-p</option> flag enables a
2704       <quote>pre-<literal>buildworld</literal></quote> mode to files
2705       known to be essential to the success of the
2706       <literal>buildworld</literal> and
2707       <literal>installworld</literal> system updating steps.  The
2708       <option>-C</option> flag, used after a successful
2709       &man.mergemaster.8; run, compares options in
2710       <filename>/etc/rc.conf</filename> to the default options in
2711       <filename>/etc/defaults/rc.conf</filename>. &merged;</para>
2712
2713     <para>&man.mesg.1; now conforms to SUSv3.  Among other things, it
2714       now uses the first terminal associated with the standard input,
2715       standard output or standard error file descriptor, in that order.
2716       Thus, it is possible to use the redirection facilities of a shell
2717       (<command>mesg n &lt; /dev/ttyp1</command>) to control write access
2718       for other terminals.</para>
2719
2720     <para role="historic">mk_cmds(1) and the associated
2721       <filename>libss</filename> have been removed; they have been
2722       unused for quite some time. &merged;</para>
2723
2724     <para>&man.mountd.8; and &man.nfsd.8; have moved from
2725       <filename>/sbin</filename> to <filename>/usr/sbin</filename>.</para>
2726
2727     <para role="historic">&man.moused.8; now takes a <option>-a</option> option to
2728       control mouse acceleration. &merged;</para>
2729
2730     <para role="historic">&man.mtree.8; now includes support for a file that lists
2731       pathnames to be excluded when creating and verifying prototypes.
2732       This makes it easier to use &man.mtree.8; as a part of an
2733       intrusion-detection system. &merged;</para>
2734
2735     <para>&man.mv.1; now takes a (nonstandard) <option>-n</option> option to 
2736       automatically answer <quote>no</quote> when it would ask to
2737       overwrite a file. &merged;</para>
2738
2739     <para role="historic">&man.natd.8; now supports a
2740       <option>-log_ipfw_denied</option> option to log packets that
2741       cannot be re-injected because they are blocked by &man.ipfw.8;
2742       rules. &merged;</para>
2743
2744     <para role="historic">The <quote>in use</quote> percentage metric displayed by
2745       &man.netstat.1; now really reflects the percentage of network
2746       mbufs used. &merged;</para>
2747
2748     <para role="historic">&man.netstat.1; now has a <option>-W</option> flag that
2749       tells it not to truncate addresses, even if they're too long for
2750       the column they're printed in. &merged;</para>
2751
2752     <para role="historic">&man.netstat.1; now keeps track of input and output packets
2753       on a per-address basis for each interface. &merged;</para>
2754
2755     <para role="historic">&man.netstat.1; now has a <option>-z</option> flag to reset
2756       statistics. &merged;</para>
2757
2758     <para role="historic">&man.netstat.1; now has a <option>-S</option> flag to print
2759       address numerically but port names symbolically. &merged;</para>
2760
2761     <para role="historic">&man.newfs.8; now implements write combining, which can make
2762       creation of new filesystems up to seven times
2763       faster. &merged;</para>
2764
2765     <para role="historic">&man.newfs.8; now takes a <option>-U</option> option to
2766       enable softupdates on a new filesystem. &merged;</para>
2767
2768     <para role="historic">The default number of cylinders per group in &man.newfs.8;
2769       is now computed to be the maximum allowable given the current
2770       filesystem parameters.  It can be overridden with the
2771       <option>-c</option> option.  Formerly, the default was fixed at
2772       16.  This change leads to better &man.fsck.8; performance and
2773       reduced fragmentation. &merged;</para>
2774
2775     <para role="historic"><anchor id="newfs-block-frag-sizes">The default block and
2776       fragment sizes for new filesystems created by &man.newfs.8; are
2777       now 16384 and 2048 bytes, respectively (the old defaults were
2778       8192 and 1024 bytes).  This change generally provides increased
2779       performance, at the expense of some wasted disk
2780       space. &merged;</para>
2781
2782     <para>A number of archaic features of &man.newfs.8; have been
2783       removed; these implement tuning features that are essentially
2784       useless on modern hard disks.  These features were controlled by
2785       the <option>-O</option>, <option>-d</option>,
2786       <option>-k</option>, <option>-l</option>, <option>-n</option>,
2787       <option>-p</option>, <option>-r</option>, <option>-t</option>,
2788       and <option>-x</option> flags.</para>
2789
2790     <para>&man.newfs.8; now supports a <option>-O</option> flag to
2791       select the creation of UFS1 or UFS2 filesystems.</para>
2792
2793     <para>The &man.newgrp.1; utility to change to a new group has been
2794       added.</para>
2795
2796     <para role="historic">&man.newsyslog.8; now has the ability to compress log files
2797       using &man.bzip2.1;. &merged;</para>
2798
2799     <para><application>NFS</application> now works over IPv6.</para>
2800
2801     <para role="historic">&man.ngctl.8; now supports a <option>write</option> command
2802       to send a data packet down a given hook. &merged;</para>
2803
2804     <para>&man.nice.1; now uses the <option>-n</option> option to
2805       specify the <quote>niceness</quote> of the utility being
2806       run. &merged;</para>
2807
2808     <para role="historic">&man.nl.1;, a line numbering filter program, has been
2809       added. &merged;</para>
2810
2811     <para><application>nsswitch</application> support has been merged
2812       from NetBSD.  By creating an &man.nsswitch.conf.5; file, &os;
2813       can be configured so that various databases such as
2814       &man.passwd.5; and &man.group.5; can be looked up using flat
2815       files, NIS, or Hesiod.  The old
2816       <filename>hosts.conf</filename> file is no longer used.</para>
2817
2818     <para>&man.od.1; now supports the <option>-A</option> option to
2819       specify the input address base, the <option>-N</option> option to
2820       specify the number of bytes to dump, the <option>-j</option>
2821       option to specify the number of bytes to skip, the
2822       <option>-s</option> option to output signed decimal shorts, and
2823       the <option>-t</option> option to specify output type. &merged;</para>
2824
2825     <para><application>PAM</application> support has been added for
2826       account management and sessions.</para>
2827
2828     <para><application>PAM</application> configuration is now
2829       specified by files in <filename>/etc/pam.d/</filename>, rather
2830       than a single <filename>/etc/pam.conf</filename> file.
2831       <filename>/etc/pam.d/README</filename> has more details.</para>
2832
2833     <para>A &man.pam.echo.8; echo service module has been added.</para>
2834
2835     <para>A &man.pam.exec.8; program execution service module has been
2836       added.</para>
2837
2838     <para>A &man.pam.ftp.8; module has been added to allow
2839       authentication of anonymous FTP users.</para>
2840
2841     <para>A &man.pam.ftpusers.8; module has been added to perform
2842       checks against the &man.ftpusers.5; file.</para>
2843
2844     <para>A &man.pam.ksu.8; module has been added to do Kerberos 5
2845       authentication and <filename>$HOME/.k5login</filename>
2846       authorization for &man.su.1;.</para>
2847
2848     <para>A &man.pam.lastlog.8; module has been added to record
2849       sessions in the &man.utmp.5;, &man.wtmp.5;, and &man.lastlog.5;
2850       databases.</para>
2851
2852     <para>A &man.pam.login.access.8; module has been added, to allow
2853       checking against <filename>/etc/login.access</filename>.</para>
2854
2855     <para>The &man.pam.nologin.8; module, which can disallow logins
2856       using &man.nologin.5;, has been added.</para>
2857
2858     <para>The &man.pam.opie.8; and &man.pam.opieaccess.8; modules have
2859       been added to control authentication via &man.opie.4;. &merged;</para>
2860
2861     <para>A &man.pam.passwdqc.8; module has been added, to check the
2862       quality of passwords submitted during password changes.</para>
2863
2864     <para>A &man.pam.rhosts.8; module has been added to support
2865       &man.rhosts.5; authentication.</para>
2866
2867     <para>The &man.pam.rootok.8; module, which can be used to
2868       authenticate only the superuser, has been added.</para>
2869
2870     <para>A &man.pam.securetty.8; module has been added to check the
2871       <quote>security</quote> of a TTY, as listed in &man.ttys.5;.</para>
2872
2873     <para>A &man.pam.self.8; module, which allows self-authentication
2874       of a user, has been added.</para>
2875
2876     <para role="historic">A &man.pam.ssh.8; module has been added to allow the use of
2877       SSH passphrases and keypairs for authentication.  This module
2878       also handles session management by invoking
2879       &man.ssh-agent.1;. &merged;</para>
2880
2881     <para>A &man.pam.wheel.8; module has been added to permit
2882       authentication to members of a group, which defaults to
2883       <groupname>wheel</groupname>.</para>
2884
2885     <para role="historic">&man.passwd.1; and &man.pw.8; now select the password hash
2886       algorithm at run time.  See the <literal>passwd_format</literal>
2887       attribute in
2888       <filename>/etc/login.conf</filename>. &merged;</para>
2889
2890     <para role="historic">&man.patch.1; now accepts a <option>-i</option> command-line
2891       flag to read a patch from a file, rather than standard
2892       input. &merged;</para>
2893
2894     <para>The &man.pathchk.1; utility, which checks pathnames for
2895       validity or portability between POSIX systems, has been
2896       added.</para>
2897
2898     <para role="historic">&man.pax.1; has received a number of enhancements, including
2899       &man.cpio.1; functionality, &man.tar.1; compatibility
2900       enhancements, <option>-z</option> and <option>-Z</option> flags
2901       for &man.gzip.1; and &man.compress.1; functionality, and a
2902       number of bug fixes. &merged;</para>
2903
2904     <para role="historic">&man.pciconf.8; now supports a <option>-v</option> option to
2905       display the vendor/device information of configured devices, in
2906       conjunction with the <option>-l</option> option.  The default
2907       vendor/device database can be found at
2908       <filename>/usr/share/misc/pci_vendors</filename>. &merged;</para>
2909
2910     <para role="historic">The behavior of &man.periodic.8; is now controlled by
2911       <filename>/etc/defaults/periodic.conf</filename> and
2912       <filename>/etc/periodic.conf</filename>. &merged;</para>
2913
2914     <para role="historic">&man.ping.8; now supports a <option>-m</option> option to
2915       set the TTL of outgoing packets. &merged;</para>
2916
2917     <para role="historic">&man.ping.8; now supports a <option>-A</option> option to
2918       beep when packets are lost. &merged;</para>
2919
2920     <para role="historic">Userland &man.ppp.8; has received a number of updates and
2921       bug fixes. &merged;</para>
2922
2923     <para role="historic">&man.ppp.8; has gained the <literal>tcpmssfixup</literal>
2924       option, which adjusts outgoing and incoming TCP SYN packets so
2925       that the maximum receive segment size is no larger than allowed
2926       by the interface MTU. &merged;</para>
2927
2928     <para role="historic">&man.ppp.8; now supports IPv6. &merged;</para>
2929
2930     <para role="historic">&man.pppd.8; (the control program for kernel-level PPP) is
2931       now installed mode <literal>4550</literal> and
2932       <username>root</username><literal>:</literal><groupname>dialer</groupname>,
2933       rather than mode <literal>4555</literal> (in other words, it is
2934       no longer world-executable).  Users of &man.pppd.8; may need to
2935       change their group settings. &merged;</para>
2936
2937     <para role="historic">&man.pr.1; now supports the <option>-f</option> and
2938       <option>-p</option> flags to pause output going to a
2939       terminal. &merged;</para>
2940
2941     <para>prefix(8) is obsolete and has been removed.  Its
2942       functionality is provided by the <option>eui64</option> command
2943       to &man.ifconfig.8;.</para>
2944
2945     <para role="historic">The <option>-W</option> option to &man.ps.1; (to extract
2946       information from a specified swap device) has been useless for
2947       some time; it has been removed. &merged;</para>
2948
2949     <para>The &man.pselect.3; library function (introduced by POSIX.1
2950       as a slightly stronger version of &man.select.2;) has been
2951       added.</para>
2952
2953     <para role="historic">&man.pwd.1; can now double as &man.realpath.1;, a program to
2954       resolve pathnames to their underlying physical
2955       paths. &merged;</para>
2956
2957     <para>&man.pwd.1; now supports the <option>-L</option> flag to
2958       print the logical current working directory. &merged;</para>
2959
2960     <para>The pseudo-random number generator implemented by
2961       &man.rand.3; has been improved to provide less biased
2962       results.</para>
2963
2964     <para role="historic">&man.rc.8; now has an framework for handling dependencies
2965       between &man.rc.conf.5; variables. &merged;</para>
2966
2967     <para role="historic">&man.rc.8; now deletes all non-directory files in
2968       <filename>/var/run</filename> and
2969       <filename>/var/spool/lock</filename> at boot
2970       time. &merged;</para>
2971
2972     <para>&man.rcmd.3; now supports the use of the
2973       <envar>RSH</envar> environment variable to specify a program to
2974       use other than &man.rsh.1; for remote execution.  As a result,
2975       programs such as &man.dump.8;, can use &man.ssh.1; for remote
2976       transport.</para>
2977
2978     <para>&man.rdist.1; has been retired from the base system, but is
2979       still available from &os; Ports Collection as
2980       <filename role="package">net/44bsd-rdist</filename>.</para>
2981
2982     <para role="historic">&man.reboot.8; now takes a <option>-k</option> to specify
2983       the next kernel to boot. &merged;</para>
2984
2985     <para>The &man.renice.8; command implements a <option>-n</option>
2986       option, which specifies an increment to be applied to the
2987       priority of a process. &merged;</para>
2988
2989     <para role="historic">The &man.resolver.3; in &os; now implements EDNS0 support,
2990       which will be necessary when working with IPv6 transport-ready
2991       resolvers/DNS servers. &merged;</para>
2992
2993     <para role="historic">The &man.rfork.thread.3; library call has been added as a
2994       helper function to &man.rfork.2;.  Using this function should
2995       avoid the need to implement complex stack swap
2996       code. &merged;</para>
2997
2998     <para role="historic">The <option>-v</option> option to &man.rm.1; now displays
2999       the entire pathname of a file being removed. &merged;</para>
3000
3001     <para role="historic">&man.route.8; is now more verbose when changing indirect
3002       routes, in the case of a gateway route that is the same route as
3003       the one being modified. &merged;</para>
3004
3005     <para role="historic">&man.route.8; now uses
3006       <literal><replaceable>host</replaceable>/<replaceable>bits</replaceable></literal>
3007       syntax instead of
3008       <literal><replaceable>net</replaceable>/<replaceable>bits</replaceable></literal>
3009       syntax, for compatibility with &man.netstat.1;. &merged;</para>
3010
3011     <para role="historic">&man.route.8; can now create <quote>proxy only</quote>
3012       published ARP entries. &merged;</para>
3013
3014     <para role="historic">The &man.route.8; <option>add</option> command now supports
3015       the <option>-ifp</option> and <option>-ifa</option>
3016       modifiers. &merged;</para>
3017
3018     <para>&man.rpcbind.8; has replaced &man.portmap.8;.</para>
3019
3020     <para>&man.rpcgen.1; now uses <filename>/usr/bin/cpp</filename>
3021       (as on NetBSD), not
3022       <filename>/usr/libexec/cpp</filename>.</para>
3023
3024     <para>&man.rpc.lockd.8; has been imported from NetBSD.  This
3025       daemon provides support for servicing client NFS locks.</para>
3026
3027     <para role="historic">The performance of the ELF dynamic linker &man.rtld.1; has
3028       been improved. &merged;</para>
3029
3030     <para role="historic">RSA Security has waived all patent rights to the
3031       <application>RSA</application> algorithm.  As a result, the
3032       native <application>OpenSSL</application> implementation of the
3033       RSA algorithm is now activated by default, and the <filename
3034       role="package">security/rsaref</filename> port and the
3035       <filename>librsaUSA</filename> and
3036       <filename>librsaINTL</filename> libraries are no longer required
3037       for USA and non-USA residents respectively. &merged;</para>
3038
3039     <para>&man.rtld.1; will now print the names of all objects that
3040       cause each object to be loaded, if the
3041       <varname>LD_TRACE_LOADED_OBJECTS_ALL</varname> environment
3042       variable is defined.</para>
3043
3044     <para role="historic">&man.savecore.8; now supports a <option>-k</option> option
3045       to prevent clearing a crash dump after saving it.  It also
3046       attempts to avoid writing large stretches of zeros to crash dump
3047       files to save space and time. &merged;</para>
3048
3049     <para role="historic">&man.savecore.8; now works correctly on machines with 2 GB
3050       or more of RAM. &merged;</para>
3051
3052     <para role="historic">&man.sed.1; now takes a <option>-E</option> option for
3053       extended regular expression support. &merged;</para>
3054
3055     <para>&man.sed.1; now takes a <option>-i</option> option to enable
3056       in-place editing of files. &merged;</para>
3057
3058     <para role="historic">&man.send-pr.1; now takes a <option>-a</option> option to
3059       include a file into the <literal>Fix:</literal> section of a
3060       problem report. &merged;</para>
3061
3062     <para>The &man.setfacl.1; and &man.getfacl.1; commands have been
3063       added to manage filesystem Access Control Lists.</para>
3064
3065     <para role="historic">&man.setproctitle.3; has been moved from
3066       <filename>libutil</filename> to
3067       <filename>libc</filename>. &merged;</para>
3068
3069     <para role="historic">&man.sh.1; now implements <command>test</command> as a
3070       built-in command for improved efficiency. &merged;</para>
3071
3072     <para>&man.sh.1; no longer implements <command>printf</command> as
3073       a built-in command because it was considered less valuable
3074       compared to the other built-in commands (this functionality is,
3075       of course, still available through the &man.printf.1;
3076       executable).</para>
3077
3078     <para>&man.sh.1; now supports a <option>-C</option> option to
3079       prevent existing regular files from being overwritten by output
3080       redirection, and a <option>-u</option> to give an error if an
3081       unset variable is expanded. &merged;</para>
3082
3083     <para>The &man.sh.1; built-in <command>cd</command> command now
3084       supports <option>-L</option> and <option>-P</option> flags to
3085       invoke logical or physical modes of operation, respectively.
3086       Logical mode is the default, but the default can be changed with
3087       the <varname>physical</varname> &man.sh.1; option. &merged;</para>
3088
3089     <para>The &man.sh.1; built-in <command>jobs</command> command now
3090       supports a <option>-s</option> flag to output PIDs only and a
3091       <option>-l</option> flag to add PIDs to the output. &merged;</para>
3092
3093     <para>&man.sh.1; now supports a <command>bind</command> built-in
3094       command, which allows the key bindings for the shell's line editor
3095       to be changed.</para>
3096
3097     <para>The &man.sh.1; built-in <command>export</command> and
3098       <command>readonly</command> commands now support a
3099       <option>-p</option> flag to print their output in
3100       <quote>portable</quote> format. &merged;</para>
3101
3102     <para role="historic">&man.sockstat.1; now has <option>-c</option> and
3103       <option>-l</option> flags for listing connected and listening
3104       sockets, respectively. &merged;</para>
3105
3106     <para>&man.spkrtest.8; is now a &man.sh.1; script, rather than a
3107       Perl script.</para>
3108
3109     <para role="historic">&man.split.1; now has the ability to split a file longer
3110       than 2GB. &merged;</para>
3111
3112     <para>&man.split.1; now supports a <option>-a</option> option to
3113       specify the number of letters to use for the suffix of split
3114       files. &merged;</para>
3115
3116     <para>In preparation for meeting SUSv2/POSIX
3117       <filename>&lt;sys/select.h&gt;</filename> requirements,
3118       <literal>struct selinfo</literal> and related functions have been
3119       moved to <filename>&lt;sys/selinfo.h&gt;</filename>.</para>
3120
3121     <para role="historic">The &man.strnstr.3; and &man.strcasestr.3; variants of
3122       &man.strstr.3; have been implemented. &merged;</para>
3123
3124     <para role="historic">&man.stty.1; now has support for an
3125       <literal>erase2</literal> control character, so that, for
3126       example, both the <keycap>Delete</keycap> and
3127       <keycap>Backspace</keycap> keys can be used to erase
3128       characters. &merged;</para>
3129
3130     <para>&man.su.1; now uses <application>PAM</application> for
3131       authentication.</para>
3132
3133     <para role="historic">Boot-time &man.syscons.4; configuration was moved to a
3134       machine-independent
3135       <filename>/etc/rc.syscons</filename>. &merged;</para>
3136
3137     <para role="historic">&man.sysctl.8; now supports a <option>-N</option> option to
3138       print out variable names only. &merged;</para>
3139
3140     <para role="historic">&man.sysctl.8; has replaced the <option>-A</option> and
3141       <option>-X</option> options with <option>-ao</option> and
3142       <option>-ax</option> respectively; the former options are now
3143       deprecated.  The <option>-w</option> option is deprecated as
3144       well; it is not needed to determine the user's
3145       intentions. &merged;</para>
3146
3147     <para role="historic">&man.sysctl.8; now supports a <option>-e</option> option to
3148       separate variable names and values by <literal>=</literal>
3149       rather than <literal>:</literal>.  This feature is useful for
3150       producing output that can be fed back to
3151       &man.sysctl.8;. &merged;</para>
3152
3153     <para>&man.sysctl.8; now accepts a <option>-d</option> flag to print
3154       the descriptions of variables.</para>
3155
3156     <para role="historic">&man.sysinstall.8; now properly preserves
3157       <filename>/etc/mail</filename> during a binary
3158       upgrade. &merged;</para>
3159
3160     <para role="historic">&man.sysinstall.8; now uses some more intuitive defaults
3161       thanks to some new dialog support functions. &merged;</para>
3162
3163     <para>The default root partition in &man.sysinstall.8; is now
3164       100MB on the i386 and pc98, 120MB on the Alpha.</para>
3165
3166     <para>&man.sysinstall.8; now lives in
3167       <filename>/usr/sbin</filename>, which simplifies the
3168       installation process.  The &man.sysinstall.8; manpage is also
3169       installed in a more consistent fashion now.</para>
3170
3171     <para role="historic">&man.sysinstall.8; now has the ability to load KLDs as a
3172       part of the installation. &merged;</para>
3173
3174     <para role="historic">When run from the installation media, &man.sysinstall.8;
3175       will automatically load any device drivers found in the
3176       <filename>/stand/modules</filename> directory of the
3177       <literal>mfsroot</literal> floppy or filesystem image.  Note
3178       that any drivers so loaded will not appear in the kernel's boot
3179       messages; the &man.sysinstall.8; debugging screen will provide
3180       additional information. &merged;</para>
3181
3182     <para role="historic">&man.sysinstall.8; now enables Soft Updates by default on
3183       all filesystems it creates, except for the root
3184       filesystem. &merged;</para>
3185
3186     <para role="historic">&man.sysinstall.8; has received updates for its
3187       <quote>auto</quote> partitioning mode which provide more
3188       reasonable defaults for the sizes of partitions that are
3189       created; auto-sized partitions can now also recover the space
3190       that becomes available when other partitions are
3191       deleted. &merged;</para>
3192
3193     <para>&man.sysinstall.8; no longer mounts the &man.procfs.5;
3194       filesystem by default on new installs.</para>
3195
3196     <para role="historic">&man.sysinstall.8; now has rudimentary support for
3197       retrieving packages from the correct volume of a multiple-volume
3198       installation (such as a multi-CD distribution). &merged;</para>
3199
3200     <para role="historic">&man.syslogd.8; can take a <option>-n</option> option to
3201       disable DNS queries for every request. &merged;</para>
3202
3203     <para role="historic">&man.syslogd.8; now supports a
3204       <literal>LOG_CONSOLE</literal> facility (disabled by default),
3205       which can be used to log <filename>/dev/console</filename>
3206       output. &merged;</para>
3207
3208     <para role="historic">&man.syslogd.8; now has the ability to bind to a specific
3209       address (as opposed to using every available one) via the
3210       <option>-b</option> option. &merged;</para>
3211
3212     <para role="historic">&man.syslogd.8; now accepts a <option>-c</option> flag to
3213       disable repeated line compression. &merged;</para>
3214
3215     <para>&man.tabs.1;, a utility to set terminal tab stops, has been
3216       added.</para>
3217
3218     <para role="historic">&man.tail.1; now has the ability to work on files longer
3219       than 2GB. &merged;</para>
3220
3221     <para role="historic">&man.tar.1; now supports the <varname>TAR_RSH</varname>
3222       variable, principally to enable the use of &man.ssh.1; as a
3223       transport. &merged;</para>
3224
3225     <para role="historic">&man.telnet.1; now does autologin and encryption by default;
3226       a new <option>-y</option> option turns off encryption. &merged;</para>
3227
3228     <para role="historic">&man.telnet.1; now supports a <option>-u</option> flag to
3229       allow connections to UNIX-domain (<literal>AF_UNIX</literal>)
3230       sockets. &merged;</para>
3231
3232     <para role="historic">&man.tftp.1; and &man.tftpd.8; now support IPv6. &merged;</para>
3233
3234     <para role="historic">&man.tftpd.8; now takes the <option>-c</option> and
3235       <option>-C</option> options, which allow the server to
3236       &man.chroot.2; based on the IP address of the connecting client.
3237       &man.tftp.1; and &man.tftpd.8; can now transfer files larger
3238       than 65535 blocks. &merged;</para>
3239
3240     <para>&man.tftpd.8; now supports RFC 2349 (TFTP Timeout Interval
3241       and Transfer Size Options); this feature is required by some
3242       firmware like EFI boot managers (at least on HP i2000 Itanium
3243       servers) in order to boot an image using
3244       <application>TFTP</application>.</para>
3245
3246     <para arch="alpha">&man.timed.8; now works on the alpha.</para>
3247
3248     <para>A version of Transport Independent RPC
3249       (<application>TI-RPC</application>) has been imported.</para>
3250
3251     <para role="historic">&man.tmpnam.3; will now use the <envar>TMPDIR</envar>
3252       environment variable, if set, to specify the location of
3253       temporary files. &merged;</para>
3254
3255     <para>&man.tip.1; has been updated from
3256       <application>OpenBSD</application>, and has the ability to act
3257       as a &man.cu.1; substitute.</para>
3258
3259     <para>&man.top.1; will now use the full width of its tty.</para>
3260
3261     <para>&man.touch.1; now takes a <option>-h</option> option to
3262       operate on a symbolic link, rather than what the link points
3263       to.</para>
3264
3265     <para>&man.tr.1; now has basic support for equivalence classes
3266       for locales that support them. &merged;</para>
3267
3268     <para>&man.tr.1; now supports a <option>-C</option> flag to
3269       complement the set of characters specified by the first string
3270       argument.</para>
3271
3272     <para role="historic">The &man.truncate.1; utility, which truncates or extends the
3273       length of files, has been added. &merged;</para>
3274
3275     <para role="historic">Ukrainian language support has been added to the &os;
3276       console. &merged;</para>
3277
3278     <para><application>UUCP</application> has been removed from the
3279       base system.  It can be found in the Ports Collection, in
3280       <filename role="package">net/freebsd-uucp</filename>.</para>
3281
3282     <para>&man.unexpand.1; now supports a <option>-t</option> to
3283       specify tabstops analogous to &man.expand.1;. &merged;</para>
3284
3285     <para role="historic">&man.units.1; has received some updates and
3286       bugfixes. &merged;</para>
3287
3288     <para>&man.usbdevs.8; now supports a <option>-d</option> flag to
3289       show the device driver associated with each device.</para>
3290
3291     <para role="historic">The &man.usbhidctl.1; utility has been added to manipulate
3292       USB Human Interface Devices. &merged;</para>
3293
3294     <para role="historic">&man.uuencode.1; and &man.uudecode.1; now accept a <option>-o</option> option to
3295       set their output files.  &man.uuencode.1; can now be made to do base64 encoding
3296       when given the <option>-m</option> flag, while &man.uudecode.1;
3297       can now automatically decode base64 files. &merged;</para>
3298
3299     <para>The base64 capabilities of &man.uuencode.1; and
3300       &man.uudecode.1; can now be automatically enabled by invoking
3301       these utilities as &man.b64encode.1; and &man.b64decode.1;
3302       respectively.</para>
3303
3304     <para>The &man.uuidgen.1; utility has been added.  It uses the new
3305       &man.uuidgen.2; system call to generate one or more Universally
3306       Unique Identifiers compatible with OSF/DCE 1.1 version 1
3307       UUIDs.</para>
3308
3309     <para role="historic">&man.vidcontrol.1; now accepts a <option>-g</option>
3310       parameter to select custom text geometry in the
3311       <literal>VESA_800x600</literal> raster text mode. &merged;</para>
3312
3313     <para role="historic">&man.vidcontrol.1; now allows the user to omit the font size
3314       specification when loading a font, and has some better
3315       error-handling. &merged;</para>
3316
3317     <para role="historic">&man.vidcontrol.1; now supports a <option>-p</option> option
3318       to take a snapshot of a &man.syscons.4; video buffer.  These
3319       snapshots can be manipulated by the
3320       <filename role="package">graphics/scr2png</filename> utility in
3321       the Ports Collection. &merged;</para>
3322
3323     <para role="historic">&man.vidcontrol.1; now supports a <option>-C</option> option
3324       to clear the history buffer for a given tty, as well as a
3325       <option>-h</option> option to set the size of the history
3326       buffer. &merged;</para>
3327
3328     <para>&man.vidcontrol.1; now accepts a <option>-S</option> to
3329       allow the user to disable VTY switching.</para>
3330
3331     <para>The default stripe size in &man.vinum.8; has been changed
3332       from 256KB to 279KB, to spread out superblocks more evenly
3333       between stripes.</para>
3334
3335     <para role="historic">&man.wall.1; now supports a <option>-g</option> flag to
3336       write a message to all users of a given group. &merged;</para>
3337
3338     <para role="historic">&man.watch.8; now takes a <option>-f</option> option to
3339       specify a &man.snp.4; device to use. &merged;</para>
3340
3341     <para>&man.wc.1; now supports a <option>-m</option> flag to
3342       count characters, rather than bytes.</para>
3343
3344     <para>&man.whereis.1;, formerly a Perl script, has been
3345       rewritten in C.  It now supports a <option>-x</option> flag to
3346       suppress the run of &man.locate.1;, and a <option>-q</option>
3347       flag suppresses the leading name of the query.</para>
3348
3349     <para>&man.whereis.1; now supports a <option>-a</option> flag
3350       to report all matches instead of only the first of each 
3351       requested type.</para>
3352
3353     <para>&man.which.1; is now a C program, rather than a Perl
3354       script.</para>
3355
3356     <para>&man.who.1; now has a number of new options:
3357       <option>-H</option> shows column headings; <option>-T</option>
3358       shows &man.mesg.1; state; <option>-m</option> is an equivalent
3359       to <option>am i</option>; <option>-u</option> shows idle time;
3360       <option>-q</option> to list names in columns. &merged;</para>
3361
3362     <para role="historic">&man.whois.1; now directs queries for IP addresses to ARIN.
3363       If a query to ARIN references APNIC or RIPE, the appropriate
3364       server will also be queried, provided that the
3365       <option>-Q</option> option is not specified. &merged;</para>
3366
3367     <para role="historic">&man.whois.1; supports a <option>-c</option> option to
3368       specify a country code to help direct queries towards a
3369       particular whois server. &merged;</para>
3370
3371     <para>&man.wicontrol.8; now supports a <option>-l</option> to list
3372       the stations associated in <literal>hostap</literal> mode and a
3373       <option>-L</option> to list available access points.</para>
3374
3375     <para>&man.xargs.1; now supports a <option>-I</option>
3376       <replaceable>replstr</replaceable> option that allows the user
3377       to tell &man.xargs.1; to insert the data read from standard
3378       input at specific points in the command line arguments rather
3379       than at the end.  (A &os;-specific <option>-J</option> option is
3380       similar, but is now deprecated in favor of the more portable
3381       <option>-I</option> option.) &merged;</para>
3382
3383     <para>&man.xargs.1; now supports a <option>-L</option> option to
3384       force its utility argument to be called after some number of
3385       lines. &merged;</para>
3386
3387     <para role="historic">The compiler chain now uses the FSF-supplied C/C++ runtime
3388       initialization code.  This change brings about better
3389       compatibility with code generated from the various egcs and gcc
3390       ports, as well as the stock public FSF source. &merged;</para>
3391
3392     <para role="historic">The threads library has gained some signal handling changes,
3393       bug fixes, and performance enhancements (including zero system
3394       call thread switching).  &man.gdb.1; thread support has been
3395       updated to match these changes. &merged;</para>
3396
3397     <para role="historic">Significant additions have been made to internationalization
3398       support; &os; now has complete locale support for the
3399       <literal>LC_MONETARY</literal>, <literal>LC_NUMERIC</literal>,
3400       and <literal>LC_MESSAGES</literal> categories.  A number of
3401       applications have been updated to take advantage of this
3402       support. &merged;</para>
3403
3404     <para role="historic">Locale names have been changed to improve compatibility with
3405       the names used by X11R6, as well as a number of other UNIX
3406       versions.  As an example, the
3407       <literal>en_US.ISO_8859-1</literal> locale name has been changed
3408       to
3409       <literal>en_US.ISO8859-1</literal>.  Entries in
3410       <filename>/etc/locale.alias</filename> provide backward
3411       compatibility. &merged;</para>
3412
3413     <para role="historic"><filename>/usr/src/share/examples/BSD_daemon/</filename> now
3414       contains a scalable Beastie graphic. &merged;</para>
3415
3416     <para role="historic">As part of an ongoing process, many manual pages were
3417       improved, both in terms of their formatting markup and in their
3418       content. &merged;</para>
3419
3420     <para>A number of utilities and libraries were enhanced to improve
3421       their conformance with the Single UNIX Specification (SUSv3) and
3422       IEEE Std 1003.1-2001 (<quote>POSIX.1</quote>).  Specific
3423       features added have been listed in the release notes for each
3424       utility.  The standards conformance of each utility or library
3425       function is generally listed in its manual page.</para>
3426
3427     <sect3>
3428       <title>Contributed Software</title>
3429
3430       <para><application>am-utils</application> has been updated to
3431         6.0.7.</para>
3432
3433       <para>A 10 February 2002 snapshot of <application>awk</application> from Bell Labs (variously
3434         known as <quote>BWK awk</quote> or <quote>The One True
3435         AWK</quote>) has been imported.  It is available as
3436         <command>awk</command> or
3437         <command>nawk</command>.</para>
3438
3439       <para role="historic"><application>bc</application> has been updated from 1.04 to
3440         1.06. &merged;</para>
3441
3442       <para role="historic">The ISC library from the <application>BIND</application>
3443         distribution is now built as
3444       <filename>libisc</filename>. &merged;</para>
3445
3446       <para role="historic"><application>BIND</application> is now built with the
3447         <literal>NOADDITIONAL</literal> flag, which causes
3448         &man.named.8; to operate in a more consistent fashion for
3449         certain common misconfigurations. &merged;</para>
3450
3451       <para><application>BIND</application> has been updated to
3452         8.3.3. &merged;</para>
3453
3454       <para><application>Binutils</application> has been updated to
3455         2.12.1 (specifically, a post-release snapshot from 22 June 2002).</para>
3456
3457       <para role="historic"><application>bzip2</application> 1.0.2 has been imported;
3458         this brings the &man.bzip2.1; program and the
3459         <filename>libbz2</filename> library to the base
3460         system. &merged;</para>
3461
3462       <para role="historic">The &man.ee.1; <application>Easy Editor</application> has
3463         been updated to 1.4.2. &merged;</para>
3464
3465       <para><application>file</application> has been updated to
3466         3.37.</para>
3467
3468       <para><application>gcc</application> has been updated to
3469         a snapshot of <application>gcc</application> 3.1.
3470         <warning>
3471           <para>The integration of <application>gcc</application> is
3472             very new.  Some applications and programs in the base
3473             system require fixes or compiler flags to build
3474             correctly.  Work to address these problems is ongoing.</para>
3475         </warning>
3476         </para>
3477
3478       <para role="historic">&man.gcc.1; now uses a unified <filename>libgcc</filename>
3479         rather than a separate one for threaded and non-threaded
3480         programs.  <filename>/usr/lib/libgcc_r.a</filename> can be
3481         removed. &merged;</para>
3482
3483       <para role="historic">&man.gcc.1; now supports the environment variable
3484         <envar>GCC_OPTIONS</envar>, which can hold a set of default
3485         options for <application>GCC</application>. &merged;</para>
3486
3487       <para><application>gdb</application> has been updated to a
3488         snapshot of <application>gdb</application> 5.2 from 27 June
3489         2002.</para>
3490
3491       <para role="historic"><application>GNATS</application> has been updated to
3492         3.113. &merged;</para>
3493
3494       <para><application>gperf</application> has been updated to
3495         2.7.2.</para>
3496
3497       <para role="historic"><application>groff</application> and its related utilities
3498         have been updated to FSF version 1.17.2.  This import brings
3499         in a new &man.mdoc.7; macro package (sometimes referred to as
3500         <literal>mdocNG</literal>), which removes many of the
3501         limitations of its predecessor. &merged;</para>
3502
3503       <para role="historic"><application>Heimdal Kerberos</application> has been updated to
3504         0.4e. &merged;</para>
3505
3506       <para role="historic">The version of <application>IPFilter</application>
3507         provided with &os; now includes the &man.ipfs.8; program,
3508         which allows state information created for NAT entries and
3509         stateful rules to be saved to disk and restored after a
3510         reboot.  Boot-time configuration of these features is
3511         supported by &man.rc.conf.5;. &merged;</para>
3512
3513       <para role="historic">The <application>ISC DHCP</application> client has been
3514         updated to 3.0.1RC8. &merged;</para>
3515
3516       <para role="historic"><application>Kerberos IV</application> has been updated to
3517         1.0.5. &merged;</para>
3518
3519       <para>The &man.more.1; command has been replaced by
3520         &man.less.1;, although it can still be run as
3521         <command>more</command>. &merged; Version 371 of
3522       <application>less</application> has been imported.</para>
3523
3524       <para><application>libpcap</application> has been updated to
3525         0.7.1. &merged;</para>
3526
3527       <para><application>libreadline</application> has been updated to
3528         4.2.</para>
3529
3530       <para><application>libz</application> has been updated to
3531         1.1.4.</para>
3532
3533       <para><application>lint</application> has been updated to
3534         snapshot of NetBSD &man.lint.1; as of 19 July 2002.</para>
3535
3536       <para><application>lukemftp</application> 1.6 beta 2 (the FTP client from
3537         NetBSD) has replaced the &os; &man.ftp.1; program.  Among its
3538         new features are more automation methods, better standards
3539         compliance, transfer rate throttling, and a customizable
3540         command-line prompt.  Some environment variables and
3541         command-line arguments have changed.</para>
3542
3543       <para>The FTP daemon from NetBSD, otherwise known as
3544         <application>lukemftpd</application> 1.2 beta 1, has been imported and is
3545         available as &man.lukemftpd.8;. &merged;</para>
3546
3547       <para>&man.m4.1; has been imported from OpenBSD, as of 26 April
3548         2002. &merged;</para>
3549
3550       <para><application>ncurses</application> has been updated to
3551         5.2-20020615.</para>
3552
3553       <para role="historic">The <application>NTP</application> suite of programs has
3554         been updated to 4.1.0. &merged;</para>
3555
3556       <para><application>OpenPAM</application>
3557         (<quote>Citronella</quote> release) has been imported,
3558         replacing
3559         <application>Linux-PAM</application>.</para>
3560
3561       <para>The <application>OPIE</application> one-time-password
3562         suite has been updated to 2.4.  It has completely
3563         replaced the functionality of
3564         <application>S/Key</application>. &merged;</para>
3565
3566       <para><application>Perl</application> has been removed from the
3567         &os; base system.  It can still be installed from the &os;
3568         Ports Collection or as a binary package; moving it out of the
3569         base system will make future upgrades and maintenence easier.
3570         To reduce the dependence of the base system on
3571         Perl, many utilities have been
3572         rewritten as shell scripts or C programs (specific notes are
3573         made for each affected utility).
3574         <filename>/usr/bin/perl</filename> is now a
3575         <quote>wrapper</quote> program, so that programs expecting to
3576         find a Perl interpreter there will
3577         be able to function correctly.
3578
3579           <warning>
3580             <para>The Perl removal and
3581               package integration work is ongoing.</para>
3582           </warning>
3583
3584         </para>
3585
3586       <para><application>GNU ptx</application> has been removed from
3587         the base system.  It is not used anywhere in the base system,
3588         and has not been recently updated or maintained.  Users
3589         requiring its functionality can install this utility as a part
3590         of the <filename role="package">textproc/textutils</filename>
3591         port.</para>
3592
3593       <para>The <literal>rc.d</literal> framework from NetBSD has been
3594         imported.  It breaks down the system startup functionality
3595         into a number of small, <quote>task-oriented</quote> scripts
3596         in <filename>/etc/rc.d</filename>, with dynamic-determined
3597         ordering of startup scripts performed at boot-time.
3598
3599         <note>
3600           <para>This feature is currently disabled by default.  It can
3601             be enabled by setting <literal>rc_ng="YES"</literal> in
3602             <filename>/etc/rc.conf</filename>.</para>
3603         </note>
3604
3605         </para>
3606
3607       <para role="historic">&man.routed.8; has been updated to version
3608         2.22. &merged;</para>
3609
3610       <para arch="i386,pc98">Version 1.4.5 of the
3611         <application>smbfs</application> userland utilities have been
3612         imported.</para>
3613
3614       <para><application>GNU sort</application> has been updated to
3615         the version from <application>GNU textutils
3616         2.0.21</application>.</para>
3617
3618       <para>&man.stat.1; from <application>NetBSD</application>, as of
3619         5 June 2002 has, been imported.</para>
3620
3621       <para><application>GNU tar</application> has been updated to
3622         1.13.25. &merged;</para>
3623
3624       <para><application>tcpdump</application> has been updated to
3625         3.7.1. &merged;</para>
3626
3627       <para>The &man.csh.1; shell has been replaced by &man.tcsh.1;,
3628         although it can still be run as <command>csh</command>.
3629         <application>tcsh</application> has been updated to version
3630         6.12. &merged;</para>
3631
3632       <para>The contributed version of
3633         <application>tcp_wrappers</application> now includes the
3634         &man.tcpd.8; helper daemon.  While not strictly necessary in a
3635         standard &os; installation (because &man.inetd.8; already
3636         incorporates this functionality), this may be useful for
3637         &man.inetd.8; replacements such as
3638         <application>xinetd</application>.</para>
3639
3640       <para><application>texinfo</application> has been updated to
3641         4.2. &merged;</para>
3642
3643       <para><application>top</application> has been updated to version
3644         3.5b12. &merged;</para>
3645
3646       <para><application>traceroute</application> has been updated to
3647         LBL version 1.4a12.</para>
3648
3649       <para role="historic">&man.traceroute.8; now takes its default maximum TTL value
3650         from the <varname>net.inet.ip.ttl</varname> sysctl
3651         variable. &merged;</para>
3652
3653       <para role="historic">The timezone database has been updated to the
3654         <filename>tzdata2002c</filename> release. &merged;</para>
3655
3656       <sect4>
3657         <title>CVS</title>
3658
3659         <para role="historic"><application>cvs</application> has been updated to
3660           1.11.1p1. &merged;</para>
3661
3662         <para role="historic">The default value for &man.cvs.1;'s
3663           <envar>CVS_RSH</envar> variable is now
3664           <literal>ssh</literal>, rather than
3665           <literal>rsh</literal>. &merged;</para>
3666
3667         <para role="historic">&man.cvs.1; now supports a <option>-T</option> option to
3668           update a sandbox's <filename>CVS/Template</filename> file
3669           from the repository. &merged;</para>
3670
3671         <para role="historic">&man.cvs.1; <literal>diff</literal> now supports the
3672           <option>-j</option> option to perform differences against a
3673           revision relative to a branch tag. &merged;</para>
3674       </sect4>
3675
3676       <sect4>
3677         <title>CVSup</title>
3678
3679         <para role="historic"><application>CVSup</application>, a frequently used
3680           utility in the &os; Ports Collection, was formerly
3681           installable using several ports and packages.  The
3682           <filename role="package">net/cvsup-bin</filename> and
3683           <filename role="package">net/cvsupd-bin</filename>
3684           ports/packages are no longer necessary or available; the
3685           <filename role="package">net/cvsup</filename> port should be
3686           used instead. &merged;</para>
3687
3688         <para role="historic"><application>CVSup</application> has been updated to
3689           16.1_3, which is available in the &os; Ports Collection as
3690           <filename role="package">net/cvsup</filename>.  This update
3691           fixes a long-standing (but only recently encountered) bug
3692           which affects the timestamps on all files after Sun Sep 9
3693           01:46:40 UTC 2001 (1,000,000,000 seconds after the UNIX
3694           epoch). &merged;</para>
3695       </sect4>
3696
3697       <sect4 id="kame-userland">
3698         <title>KAME</title>
3699
3700         <para role="historic">The IPv6 stack is now based on a snapshot based on the
3701           KAME Project's IPv6 snapshot as of 28 May, 2001.  Most of
3702           the items listed in this section are a result of this
3703           import.
3704           <xref linkend="kame-kernel"> lists kernel updates to the
3705           KAME IPv6 stack. &merged;</para>
3706
3707         <para role="historic">&man.faithd.8; now supports a configuration file for
3708           access control. &merged;</para>
3709
3710         <para role="historic">&man.ifconfig.8; can now perform the functions of
3711           gifconfig(8). &merged;</para>
3712
3713         <para role="historic">&man.ifconfig.8; can now perform the functions of
3714           prefix(8). &merged;</para>
3715
3716         <para role="historic">&man.ndp.8; now implements garbage collection for stale
3717           NDP entries, as described in RFC 2461 (Neighbor Discovery
3718           for IP Version 6 (IPv6)). &merged;</para>
3719
3720         <para role="historic">pim6dd(8) and pim6sd(8) have been removed due
3721           to restrictive licensing conditions.  These programs are
3722           available in the ports collection as
3723           <filename role="package">net/pim6dd</filename> and
3724           <filename role="package">net/pim6sd</filename>. &merged;</para>
3725
3726         <para role="historic">&man.route6d.8; now supports an <option>-n</option> flag
3727           to avoid updating the kernel forwarding
3728           table. &merged;</para>
3729
3730         <para role="historic">The <option>-R</option> (router renumbering) option to
3731           &man.rtadvd.8; is currently ignored. &merged;</para>
3732       </sect4>
3733
3734       <sect4>
3735         <title>OpenSSH</title>
3736
3737         <para role="historic"><application>OpenSSH</application> has been updated to
3738           2.9, which provides support for the SSH2 protocol (now the
3739           default) and DSA keys.  &man.ssh-add.1; and
3740           &man.ssh-agent.1; can now handle DSA keys, with support for
3741           authentication forwarding.
3742           <application>OpenSSH</application> users in the USA no
3743           longer need to rely on the restrictively-licensed RSAREF
3744           toolkit which is required to handle RSA keys.  Among other
3745           new features: A client and server for &man.sftp.1; has been added.
3746           &man.scp.1; can now handle files larger than 2 GBytes.  A
3747           limit on the number of outstanding, unauthenticated
3748           connections in &man.sshd.8; has been added.  Support has
3749           been added for the Rijndael encryption algorithm.  Rekeying
3750           of existing sessions is now supported, and an experimental
3751           <application>SOCKS4</application> proxy has been added to
3752           &man.ssh.1;. &merged;</para>
3753
3754         <para><application>OpenSSH</application> has been updated to
3755           version 3.1. &merged; Among the changes:
3756             <itemizedlist>
3757               <listitem>
3758                 <para>The <filename>*2</filename> files are obsolete
3759                   (for example,
3760                   <filename>~/.ssh/known_hosts</filename> can hold the
3761                   contents of
3762                   <filename>~/.ssh/known_hosts2</filename>).</para>
3763               </listitem>
3764               <listitem>
3765                 <para>&man.ssh-keygen.1; can import and export keys using
3766                   the SECSH Public Key File Format, for key exchange
3767                   with several commercial SSH implementations.</para>
3768               </listitem>
3769               <listitem>
3770                 <para>&man.ssh-add.1; now adds all three default keys.</para>
3771               </listitem>
3772               <listitem>
3773                 <para>&man.ssh-keygen.1; no longer defaults to a
3774                   specific key type; one must be specified with the
3775                   <option>-t</option> option.</para>
3776               </listitem>
3777             </itemizedlist>
3778           </para>
3779
3780         <para><application>OpenSSH</application> has been updated to
3781           3.4p1. &merged; The main changes are:
3782             <itemizedlist>
3783               <listitem>
3784                 <para>A <quote>privilege separation</quote> feature,
3785                   which uses unprivileged processes to contain and
3786                   restrict the effects of future compromises or
3787                   programming errors.</para>
3788               </listitem>
3789
3790               <listitem>
3791                 <para>Several bugfixes, including closure of a
3792                   security hole that could lead to an integer overflow
3793                   and undesired privilege escalation.</para>
3794               </listitem>
3795             </itemizedlist>
3796           </para>
3797
3798         <para role="historic"><application>OpenSSH</application> can now authenticate
3799           using <application>OPIE</application> passwords. &merged;</para>
3800
3801         <para role="historic"><application>PAM</application> support for
3802           <application>OpenSSH</application> has been added. &merged;</para>
3803
3804         <para role="historic">A long-standing bug in
3805           <application>OpenSSH</application>, which sometimes resulted
3806           in a dropped session when an X11-forwarded client was
3807           closed, was fixed. &merged;</para>
3808
3809         <para role="historic"><application>Kerberos</application> compatibility has
3810           been added to
3811           <application>OpenSSH</application>. &merged;</para>
3812
3813         <para role="historic"><application>OpenSSH</application> has been modified to
3814           be more resistant to traffic analysis by requiring that
3815           <quote>non-echoed</quote> characters are still echoed back
3816           in a null packet, as well as by padding passwords sent so as
3817           not to hint at password lengths. &merged;</para>
3818
3819         <para role="historic">&man.sshd.8; is now enabled by default on new
3820           installs. &merged;</para>
3821
3822         <para role="historic">&man.sshd.8; <literal>X11Forwarding</literal> is now
3823           turned on by default on the server (any risk is to the
3824           client, where it is already disabled by
3825           default). &merged;</para>
3826
3827         <para role="historic">In <filename>/etc/ssh/sshd_config</filename>, the
3828           <literal>ConnectionsPerPeriod</literal> parameter has been
3829           deprecated in favor of
3830           <literal>MaxStartups</literal>. &merged;</para>
3831
3832         <para role="historic"><application>OpenSSH</application> now has a
3833           <literal>VersionAddendum</literal> configuration setting for
3834           &man.sshd.8; to allow changing the part of the
3835           <application>OpenSSH</application> version string after the
3836           main version number. &merged;</para>
3837       </sect4>
3838
3839       <sect4>
3840         <title>OpenSSL</title>
3841
3842         <para><application>OpenSSL</application> has been updated to
3843           0.9.6g. &merged;</para>
3844
3845         <para role="historic"><application>OpenSSL</application> now has support for
3846           machine-dependent ASM optimizations, activated by the new
3847           <varname>MACHINE_CPU</varname> and/or
3848           <varname>CPUTYPE</varname>
3849           <filename>make.conf</filename> variables. &merged;</para>
3850       </sect4>
3851
3852       <sect4>
3853         <title>sendmail</title>
3854
3855         <para><application>sendmail</application> has been updated
3856           from version 8.9.3 to version 8.12.5.  Important changes
3857           include: &man.sendmail.8; is no longer installed as a
3858           set-user-ID <username>root</username> binary (now set-group-ID <groupname>smmsp</groupname>); new
3859           default file locations (see
3860           <filename>/usr/src/contrib/sendmail/cf/README</filename>);
3861           &man.newaliases.1; is limited to <username>root</username>
3862           and trusted users; STARTTLS encryption; and the MSA port
3863           (587) is turned on by default.  See
3864           <filename>/usr/src/contrib/sendmail/RELEASE_NOTES</filename>
3865           for more information. &merged;</para>
3866
3867         <para role="historic">&man.mail.local.8; is no longer installed as a
3868           set-user-ID binary.  If you are using a
3869           <filename>/etc/mail/sendmail.cf</filename> from the default
3870           <filename>sendmail.cf</filename> included with &os; any time
3871           after 3.1.0, you are fine.  If you are using a
3872           hand-configured <filename>sendmail.cf</filename> and
3873           <command>mail.local</command> for delivery, check to make sure the
3874           <literal>F=S</literal> flag is set on the
3875           <literal>Mlocal</literal> line.  Those with
3876           <filename>.mc</filename> files who need to add the flag can
3877           do so by adding the following line to their
3878           <filename>.mc</filename> file and regenerating the
3879           <filename>sendmail.cf</filename> file:</para>
3880
3881         <programlisting role="historic">MODIFY_MAILER_FLAGS(`LOCAL',`+S')dnl</programlisting>
3882
3883         <para role="historic">Note that <literal>FEATURE(`local_lmtp')</literal> already
3884           does this. &merged;</para>
3885
3886         <para role="historic">The default <filename>/etc/mail/sendmail.cf</filename>
3887           disables the SMTP <literal>EXPN</literal> and
3888           <literal>VRFY</literal> commands. &merged;</para>
3889
3890         <para role="historic">&man.vacation.1; has been updated to use the version
3891           included with <application>sendmail</application>. &merged;</para>
3892
3893         <para role="historic">The <application>sendmail</application> configuration
3894           building tools are installed in
3895           <filename>/usr/share/sendmail/cf/</filename>. &merged;</para>
3896
3897         <para role="historic">New <filename>make.conf</filename> options:
3898           <varname>SENDMAIL_MC</varname> and
3899           <varname>SENDMAIL_ADDITIONAL_MC</varname>.  See
3900           <filename>/usr/share/examples/etc/make.conf</filename> for more
3901           information. &merged;</para>
3902
3903         <para role="historic"><filename>/etc/mail/Makefile</filename> now supports:
3904           the new <varname>SENDMAIL_MC</varname>
3905           <filename>make.conf</filename> option; the ability to build
3906           <filename>.cf</filename> files from
3907           <filename>.mc</filename> files; generalized map rebuilding;
3908           rebuilding the aliases file; and the ability to stop, start,
3909           and restart
3910           <application>sendmail</application>. &merged;</para>
3911
3912         <para role="historic">The <username>smmsp</username> and
3913           <username>mailnull</username> users have been added to
3914           <filename>/etc/master.passwd</filename>.  In the absence of a
3915           <literal>confDEF_USER_ID</literal> setting, by default,
3916           <application>sendmail</application> will use the
3917           <username>mailnull</username> user for extra security.
3918           Previously, if the <username>mailnull</username> user did
3919           not exist, the <username>daemon</username> user was used.
3920           This change may generate some permissions issues when
3921           mailing to files or to programs (such as <filename
3922           role="package">mail/majordomo</filename>).  &merged; The
3923           previous behavior can be restored by adding the following
3924           line to a system's
3925           <filename><replaceable>*</replaceable>.mc</filename>
3926           configuration file:
3927
3928           <programlisting>define(`confDEF_USER_ID', `daemon')</programlisting>
3929         </para>
3930
3931         <para role="historic">Beginning with the import of
3932           <application>sendmail</application> 8.12.2, multiple
3933           <application>sendmail</application> daemons (some required
3934           to handle outgoing mail) are started by &man.rc.8;, even if
3935           the <varname>sendmail_enable</varname> variable is set to
3936           <literal>NO</literal>.  To completely disable
3937           <application>sendmail</application>,
3938           <varname>sendmail_enable</varname> must be set to
3939           <literal>NONE</literal>.  Alternatively, for systems using a
3940           different MTA, the <varname>mta_start_script</varname> variable can
3941           be used to point to a different startup script (more details
3942           can be found in &man.rc.sendmail.8;). &merged;</para>
3943
3944         <para>By default, &man.rc.8; no longer enables
3945           <application>sendmail</application> for inbound SMTP
3946           connections.  Note that &man.sysinstall.8; may override this
3947           default for a binary installation, based on what security
3948           profile is selected.  This functionality can also be
3949           manually enabled by adding the following line to
3950           <filename>/etc/rc.conf</filename>:</para>
3951
3952         <programlisting>sendmail_enable="YES"</programlisting>
3953
3954         <para>The permissions for <application>sendmail</application>
3955           alias and map databases built via
3956           <filename>/etc/mail/Makefile</filename> now default to mode
3957           0640 to protect against a file locking local denial of service.
3958           It can be changed by setting the new
3959           <varname>SENDMAIL_MAP_PERMS</varname>
3960           <filename>make.conf</filename> option. &merged;</para>
3961
3962         <para>The permissions for the <application>sendmail</application>
3963           statistics file, <filename>/var/log/sendmail.st</filename>, have
3964           been changed from mode 0644 to mode 0640 to protect against
3965           a file locking local denial of service. &merged;</para>
3966
3967       </sect4>
3968     </sect3>
3969
3970     <sect3>
3971       <title>Ports/Packages Collection Infrastructure</title>
3972
3973       <para><application>BSDPAN</application>, a collection of modules
3974         that provides tighter integration of
3975         <application>Perl</application> into the &os; Ports
3976         Collection, has been added.</para>
3977
3978       <para role="historic">&man.pkg.create.1; and &man.pkg.add.1; can now work with
3979         packages that have been compressed using
3980         &man.bzip2.1;. &man.pkg.add.1; will use the PACKAGEROOT
3981         environment variable to determine a mirror site for new
3982         packages. &merged;</para>
3983
3984       <para role="historic">&man.pkg.create.1; now records dependencies in dependency
3985         order rather than in the order specified on the command line.
3986         This improves the functioning of <command>pkg_add
3987         -r</command>. &merged;</para>
3988
3989       <para role="historic">&man.pkg.create.1; now supports a <option>-b</option> to
3990         create a package file from a locally-installed
3991         package. &merged;</para>
3992
3993       <para role="historic">When requested to delete multiple packages,
3994         &man.pkg.delete.1; will now attempt to remove them in
3995         dependency order rather than the order specified on the
3996         command line. &merged;</para>
3997
3998       <para role="historic">&man.pkg.delete.1; now can perform glob/regexp matching of
3999         package names.  In addition, it supports a <option>-a</option>
4000         option for removing all packages and a <option>-i</option>
4001         option for &man.rm.1;-style interactive
4002         confirmation. &merged;</para>
4003
4004       <para role="historic">&man.pkg.delete.1; now supports a <option>-r</option>
4005         option for recursive package removal. &merged;</para>
4006
4007       <para role="historic">&man.pkg.info.1; now supports globbing against names of
4008         installed packages.  The <option>-G</option> option disables
4009         this behavior, and the <option>-x</option> option causes
4010         regular expression matching instead of shell
4011         globbing. &merged;</para>
4012
4013       <para role="historic">&man.pkg.info.1; can now accept a <option>-g</option> flag
4014         for verifying an installed package against its recorded
4015         checksums (to see if it's been modified post-installation).
4016         Naturally, this mechanism is only as secure as the contents of
4017         <filename>/var/db/pkg</filename> if it's to be used for auditing
4018         purposes. &merged;</para>
4019
4020       <para role="historic">&man.pkg.sign.1; and &man.pkg.check.1; have been added to
4021         digitally sign and verify the signatures on binary package
4022         files. &merged;</para>
4023
4024       <para>For some time, &os; 5.0-CURRENT (as well as some 4.X
4025         releases) included a pkg_update(1) utility to update installed
4026         packages, as well as their dependencies.  This utility has
4027         been removed; a superset of its functionality can be found in
4028         the <filename role="package">sysutils/portupgrade</filename>
4029         port.</para>
4030
4031       <para role="historic">&man.pkg.version.1; now has a version number comparison
4032         routine that corresponds to the Porters Handbook.  It also has
4033         a <option>-t</option> option for testing address comparisons.
4034         &merged;</para>
4035
4036       <para role="historic">&man.pkg.version.1; now takes a <option>-s</option> flag
4037         to limit its operation to ports/packages matching a given
4038         string. &merged;</para>
4039
4040       <para>&man.pkg.version.1;, formerly a Perl script, has been
4041         rewritten in C.</para>
4042
4043       <para role="historic">Version numbers of installed packages have a new
4044         (backward-compatible) syntax, which supports the
4045         <varname>PORTREVISION</varname> and
4046         <varname>PORTEPOCH</varname> variables in Ports Collection
4047         <filename>Makefile</filename>s.  These changes help keep track
4048         of changes in the ports collection entries such as security
4049         patches or &os;-specific updates, which aren't reflected in
4050         the original, third-party software distributions.
4051         &man.pkg.version.1; can now compare these new-style version
4052         numbers. &merged;</para>
4053
4054       <para role="historic">To improve performance and disk utilization, the
4055         <quote>ports skeletons</quote> in the &os; Ports Collection
4056         have been restructured.  Installed ports and packages should
4057         not be affected. &merged;</para>
4058
4059       <para role="historic">All packages and ports now contain an
4060         <quote>origin</quote> directive, which makes it easier for
4061         programs such as &man.pkg.version.1; to determine the
4062         directory from which a package was built. &merged;</para>
4063
4064       <para role="historic">The Ports Collection infrastructure now uses
4065         <application>XFree86</application> 4.2.0 as the default version
4066         of the X Window System for the purposes of satisfying
4067         dependencies.  To return to using
4068         <application>XFree86</application> 3.3.6, add the following line
4069         to <filename>/etc/make.conf</filename>: &merged;</para>
4070
4071       <programlisting role="historic">XFREE86_VERSION=3</programlisting>
4072
4073       <para>The libraries installed by the <filename
4074         role="package">emulators/linux_base</filename> port (required
4075         for Linux emulation) have been updated; they now correspond to
4076         those included with <application>Red Hat Linux</application>
4077         7.1.</para>
4078     </sect3>
4079   </sect2>
4080
4081   <sect2>
4082     <title>Release Engineering and Integration</title>
4083
4084     <para>The <filename>bin</filename> distribution has been renamed
4085       <filename>base</filename>, in order to make creation of combined
4086       install/recovery disks easier.</para>
4087
4088     <para arch="i386">ISO images and CDROMs now use the
4089       <filename>cdboot</filename> boot loader by default.  This
4090       eliminates the need for an emulated floppy disk image on
4091       a bootable CDROM and allows for a full
4092       <filename>GENERIC</filename> kernel to be used for CDROM
4093       installations, at the expense of compatability with some old
4094       BIOSs.</para>
4095
4096     <para arch="i386,pc98,alpha" role="historic"><application>XFree86</application> 4.2.0
4097       is now the default version of the X Window System supported by
4098       &man.sysinstall.8;.  It installs
4099       <application>XFree86</application> as a set of standard binary
4100       packages, so the usual package utilities such as
4101       &man.pkg.info.1; can be used to examine/manipulate its
4102       components. &merged;</para>
4103
4104     <para>It is now possible to make releases of &os;
4105       5-CURRENT on a &os; 4-STABLE host and vice versa.  Cross-architecture
4106       (building a release for a target architecture on a host of a
4107       different architecture) releases are also possible.  See
4108       &man.release.7; for details. &merged;</para>
4109
4110     <para>A third <filename>drivers.flp</filename> floppy has been
4111       added to floppy releases.  It holds loadable modules
4112       containing drivers that do not fit in the kernel on the
4113       <filename>kern.flp</filename> disk or in the
4114       <filename>mfsroot.flp</filename> image.</para>
4115   </sect2>
4116
4117   <sect2>
4118     <title>Documentation</title>
4119
4120     <para>A number of formerly-encumbered documents from the 4.4 BSD
4121       Programmer's Supplementary Documents have been restored to
4122       <filename>/usr/share/doc/psd</filename>.  These include:</para>
4123
4124     <itemizedlist>
4125       <listitem>
4126         <para><emphasis>The UNIX Time-Sharing System</emphasis>
4127           (<filename>01.cacm</filename>)</para>
4128       </listitem>
4129
4130       <listitem>
4131         <para><emphasis>UNIX Implementation</emphasis>
4132           (<filename>02.implement</filename>)</para>
4133       </listitem>
4134
4135       <listitem>
4136         <para><emphasis>The UNIX I/O System</emphasis>
4137           (<filename>03.iosys</filename>)</para>
4138       </listitem>
4139
4140       <listitem>
4141         <para><emphasis>UNIX Programming &mdash; Second Edition</emphasis>
4142           (<filename>04.uprog</filename>)</para>
4143       </listitem>
4144
4145       <listitem>
4146         <para><emphasis>The C Programming Language &mdash; Reference Manual</emphasis>
4147           (<filename>06.Clang</filename>)</para>
4148       </listitem>
4149
4150       <listitem>
4151         <para><emphasis>Yacc: Yet Another Compiler-Compiler</emphasis>
4152           (<filename>15.yacc</filename>)</para>
4153       </listitem>
4154
4155       <listitem>
4156         <para><emphasis>Lex &mdash; A Lexical Analyzer Generator</emphasis>
4157           (<filename>16.lex</filename>)</para>
4158       </listitem>
4159
4160       <listitem>
4161         <para><emphasis>The M4 Macro Processor</emphasis>
4162           (<filename>17.m4</filename>)</para>
4163       </listitem>
4164     </itemizedlist>
4165
4166     <para>Several formerly-encumbered documents from the 4.4 BSD
4167       User's Supplementary Documents have been restored to
4168       <filename>/usr/share/doc/usd</filename>.  They include:</para>
4169
4170     <itemizedlist>
4171       <listitem>
4172         <para><emphasis>NROFF/TROFF User's Manual</emphasis>
4173           (<filename>21.troff</filename>)</para>
4174       </listitem>
4175
4176       <listitem>
4177         <para><emphasis>A TROFF Tutorial</emphasis>
4178           (<filename>22.trofftut</filename>)</para>
4179       </listitem>
4180     </itemizedlist>
4181   </sect2>
4182
4183 </sect1>
4184
4185 <sect1>
4186   <title>Upgrading from previous releases of &os;</title>
4187
4188   <para>If you're upgrading from a previous release of &os;, you
4189     generally will have three options:
4190
4191     <itemizedlist>
4192       <listitem>
4193         <para>Using the binary upgrade option of &man.sysinstall.8;.
4194           This option is perhaps the quickest, although it presumes
4195           that your installation of &os; uses no special compilation
4196           options.</para>
4197       </listitem>
4198       <listitem>
4199         <para>Performing a complete reinstall of &os;.  Technically,
4200           this is not an upgrading method, and in any case is usually less
4201           convenient than a binary upgrade, in that it requires you to
4202           manually backup and restore the contents of
4203           <filename>/etc</filename>.  However, it may be useful in
4204           cases where you want (or need) to change the partitioning of
4205           your disks.
4206       </listitem>
4207       <listitem>
4208         <para>From source code in <filename>/usr/src</filename>.  This
4209           route is more flexible, but requires more disk space, time,
4210           and technical expertise.  More information can be found
4211           in the <ulink
4212           url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html"><quote>Using
4213           <command>make world</command></quote></ulink> section of the <ulink
4214           url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/">FreeBSD
4215           Handbook</ulink>.  Upgrading from very old
4216           versions of &os; may be problematic; in cases like this, it
4217           is usually more effective to perform a binary upgrade or a
4218           complete reinstall.</para>
4219       </listitem>
4220     </itemizedlist>
4221   </para>
4222
4223   <para>Please read the <filename>INSTALL.TXT</filename> file for more
4224     information, preferably <emphasis>before</emphasis> beginning an
4225     upgrade.  If you are upgrading from source, please be sure to read
4226     <filename>/usr/src/UPDATING</filename> as well.</para>
4227
4228   <para>Finally, if you want to use one of various means to track the
4229     -STABLE or -CURRENT branches of &os;, please be sure to consult
4230     the <ulink
4231     url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html"><quote>-CURRENT
4232     vs. -STABLE</quote></ulink> section of the <ulink
4233     url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/">FreeBSD
4234     Handbook</ulink>.</para>
4235
4236   <important>
4237     <para>Upgrading &os; should, of course, only be attempted after
4238       backing up <emphasis>all</emphasis> data and configuration
4239       files.</para>
4240   </important>
4241 </sect1>