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