]> CyberLeo.Net >> Repos - FreeBSD/releng/8.2.git/blob - UPDATING
Fix named(8) DNSSEC validation Denial of Service.
[FreeBSD/releng/8.2.git] / UPDATING
1 Updating Information for FreeBSD current users
2
3 This file is maintained and copyrighted by M. Warner Losh
4 <imp@village.org>.  See end of file for further details.  For commonly
5 done items, please see the COMMON ITEMS: section later in the file.
6
7 Items affecting the ports and packages system can be found in
8 /usr/ports/UPDATING.  Please read that file before running
9 portupgrade.
10
11 NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW ON IA64 OR SUN4V:
12         For ia64 the INVARIANTS and INVARIANT_SUPPORT kernel options
13         were left in the GENERIC kernel because the kernel does not
14         work properly without them.  For sun4v all of the normal kernel
15         debugging tools present in HEAD were left in place because
16         sun4v support still needs work to become production ready.
17
18 20120806:       p10     FreeBSD-SA-12:05.bind
19         Fix named(8) DNSSEC validation Denial of Service.
20
21 20120612:       p9      FreeBSD-SA-12:03.bind
22                         FreeBSD-SA-12:04.sysret
23                         FreeBSD-EN-12:02.ipv6refcount
24         Fix a problem where zero-length RDATA fields can cause named to crash.
25         [12:03]
26
27         Correct a privilege escalation when returning from kernel if
28         running FreeBSD/amd64 on non-AMD processors. [12:04]
29
30         Fix reference count errors in IPv6 code. [EN-12:02]
31
32 20120530:       p8      FreeBSD-SA-12:01.openssl (revised),
33                         FreeBSD-SA-12:02.crypt
34         Update the previous openssl fix. [12:01]
35
36         Fix a bug in crypt(3) ignoring characters of a passphrase. [12:02]
37
38 20120503:       p7      FreeBSD-SA-12:01.openssl
39         Fix multiple OpenSSL vulnerabilities.
40
41 20120104:       p6      FreeBSD-EN-12:01.freebsd-update
42         Extend the character set accepted by freebsd-update(8) in file
43         names in order to allow upgrades to FreeBSD 9.0-RELEASE.
44
45 20111223:       p5      FreeBSD-SA-11:06.bind, FreeBSD-SA-11:07.chroot
46                         FreeBSD-SA-11:08.telnetd, FreeBSD-SA-11:09.pam_ssh
47                         FreeBSD-SA-11:10.pam
48         Fix a problem whereby a corrupt DNS record can cause named to crash.
49         [11:06]
50
51         Add an API for alerting internal libc routines to the presence of
52         "unsafe" paths post-chroot, and use it in ftpd. [11:07]
53
54         Fix a buffer overflow in telnetd. [11:08]
55
56         Make pam_ssh ignore unpassphrased keys unless the "nullok" option is
57         specified. [11:09]
58
59         Add sanity checking of service names in pam_start. [11:10]
60
61 20111004:       p4      FreeBSD-SA-11:05.unix (revised)
62         Fix a bug in UNIX socket handling in the linux emulator which was
63         exposed by the security fix in FreeBSD-SA-11:05.unix.
64
65 20110928:       p3      FreeBSD-SA-11:04.compress, FreeBSD-SA-11:05.unix
66         Fix handling of corrupt compress(1)ed data. [11:04]
67
68         Add missing length checks on unix socket addresses. [11:05]
69
70 20110528:       p2      FreeBSD-SA-11:02.bind
71         Fix BIND remote DoS with large RRSIG RRsets and negative
72         caching.
73
74 20110420:       p1      FreeBSD-SA-11:01.mountd
75         Fix CIDR parsing bug in mountd ACLs.
76
77 20110221:
78         8.2-RELEASE.
79
80 20101126:
81         New version of minidump format for amd64 architecture was
82         introduced in r215872.  To analyze vmcore files produced by
83         kernels at or after this version you will need updated userland,
84         libkvm actually, that is able to handle the new version.
85
86 20101022:
87         A workaround for a fixed ld bug has been removed in kernel code,
88         so make sure that your system ld is built from sources after
89         revision 211583 from 2010-08-21 (r210245 from 2010-07-19 if
90         building stable/8 kernel on head, r211584 from 2010-08-21 for
91         stable/7).  A symptom of incorrect ld version is
92         different addresses for set_pcpu section and __start_set_pcpu
93         symbol in kernel and/or modules.
94
95 20100915:
96         A new version of ZFS (version 15) has been merged.
97         This version uses a python library for the following subcommands:
98         zfs allow, zfs unallow, zfs groupspace, zfs userspace.
99         For full functionality of these commands the following port must
100         be installed: sysutils/py-zfs
101
102 20100720:
103         8.1-RELEASE.
104
105 20100502:
106         The config(8) command has been updated to maintain compatibility
107         with config files from 8.0-RELEASE.  You will need a new version
108         of config to build kernels (this version can be used from 8.0-RELEASE
109         forward).  The buildworld target will generate it, so following
110         the instructions in this file for updating will work glitch-free.
111         Merely doing a make buildkernel without first doing a make buildworld
112         (or kernel-toolchain), or attempting to build a kernel using
113         traidtional methods will generate a config version warning, indicating
114         you should update.
115
116 20100408:
117         The rc.firewall and rc.firewall6 were unified, and
118         rc.firewall6 and rc.d/ip6fw were removed.
119         According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
120         variables are obsoleted.  Instead, the following new rc
121         variables are added to rc.d/ipfw:
122
123                 firewall_client_net_ipv6, firewall_simple_iif_ipv6,
124                 firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
125                 firewall_simple_onet_ipv6
126
127         The meanings correspond to the relevant IPv4 variables.
128
129 20100417:
130         COMPAT_IA32 has been added as an alias for COMPAT_FREEBSD32.  A new
131         version of config(8) is required.  The error message when you hit this
132         condition is confusing (COMPAT_FREEBSD32 duplicate option), when it
133         should really say "your config is too old to compile this new kernel."
134
135 20100406:
136         The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32
137         to allow 32-bit compatibility on non-x86 platforms. All kernel
138         configurations on amd64 and ia64 platforms using these options must
139         be modified accordingly.
140
141 20100125:
142         Introduce the kernel thread "deadlock resolver" (which can be enabled
143         via the DEADLKRES option, see NOTES for more details) and the
144         sleepq_type() function for sleepqueues.
145
146 20091125:
147         8.0-RELEASE.
148
149 20090929:
150         802.11s D3.03 support was committed. This is incompatible with
151         the previous code, which was based on D3.0.
152
153 20090915:
154         ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
155         mount(8) and -a option for df(1) to see them.
156
157 20090813:
158         Remove the option STOP_NMI.  The default action is now to use NMI
159         only for KDB via the newly introduced function stop_cpus_hard()
160         and maintain stop_cpus() to just use a normal IPI_STOP on ia32
161         and amd64.
162
163 20090803:
164         RELENG_8 branched.
165
166 20090719:
167         Bump the shared library version numbers for all libraries that
168         do not use symbol versioning as part of the 8.0-RELEASE cycle.
169         Bump __FreeBSD_version to 800105.
170
171 20090714:
172         Due to changes in the implementation of virtual network stack
173         support, all network-related kernel modules must be recompiled.
174         As this change breaks the ABI, bump __FreeBSD_version to 800104.
175
176 20090713:
177         The TOE interface to the TCP syncache has been modified to remove struct
178         tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack.  The
179         cxgb driver is the only TOE consumer affected by this change, and needs
180         to be recompiled along with the kernel. As this change breaks the ABI,
181         bump __FreeBSD_version to 800103.
182
183 20090712:
184         Padding has been added to struct tcpcb, sackhint and tcpstat in
185         <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
186         maintainig the ABI. However, this change breaks the ABI, so bump
187         __FreeBSD_version to 800102. User space tools that rely on the size of
188         any of these structs (e.g. sockstat) need to be recompiled.
189
190 20090630:
191         The NFS_LEGACYRPC option has been removed along with the old
192         kernel RPC implementation that this option selected. Kernel
193         configurations may need to be adjusted.
194
195 20090629:
196         The network interface device nodes at /dev/net/<interface> have
197         been removed.  All ioctl operations can be performed the normal
198         way using routing sockets.  The kqueue functionality can
199         generally be replaced with routing sockets.
200
201 20090628:
202         The documentation from the FreeBSD Documentation Project
203         (Handbook, FAQ, etc.) is now installed via packages by
204         sysinstall(8) and under the /usr/local/share/doc/freebsd
205         directory instead of /usr/share/doc.
206
207 20090624:
208         The ABI of various structures related to the SYSV IPC API have
209         been changed.  As a result, the COMPAT_FREEBSD[456] and COMPAT_43
210         kernel options now all require COMPAT_FREEBSD7.
211         Bump __FreeBSD_version to 800100.
212
213 20090622:
214         Layout of struct vnet has changed as routing related variables
215         were moved to their own Vimage module. Modules need to be
216         recompiled.  Bump __FreeBSD_version to 800099.
217
218 20090619:
219         NGROUPS_MAX and NGROUPS have been increased from 16 to 1023
220         and 1024 respectively.  As long as no more than 16 groups per
221         process are used, no changes should be visible.  When more
222         than 16 groups are used, old binaries may fail if they call
223         getgroups() or getgrouplist() with statically sized storage.
224         Recompiling will work around this, but applications should be
225         modified to use dynamically allocated storage for group arrays
226         as POSIX.1-2008 does not cap an implementation's number of
227         supported groups at NGROUPS_MAX+1 as previous versions did.
228
229         NFS and portalfs mounts may also be affected as the list of
230         groups is truncated to 16.  Users of NFS who use more than 16
231         groups, should take care that negative group permissions are not
232         used on the exported file systems as they will not be reliable
233         unless a GSSAPI based authentication method is used.
234
235 20090616:
236         The compiling option ADAPTIVE_LOCKMGRS has been introduced.
237         This option compiles in the support for adaptive spinning for lockmgrs
238         which want to enable it.  The lockinit() function now accepts the
239         flag LK_ADAPTIVE in order to make the lock object subject to
240         adaptive spinning when both held in write and read mode.
241
242 20090613:
243         The layout of the structure returned by IEEE80211_IOC_STA_INFO
244         has changed.  User applications that use this ioctl need to be
245         rebuilt.
246
247 20090611:
248         The layout of struct thread has changed.  Kernel and modules
249         need to be rebuilt.
250
251 20090608:
252         The layout of structs ifnet, domain, protosw and vnet_net has
253         changed.  Kernel modules need to be rebuilt.
254         Bump __FreeBSD_version to 800097.
255
256 20090602:
257         window(1) has been removed from the base system. It can now be
258         installed from ports. The port is called misc/window.
259
260 20090601:
261         The way we are storing and accessing `routing table' entries
262         has changed. Programs reading the FIB, like netstat, need to
263         be re-compiled.
264
265 20090601:
266         A new netisr implementation has been added for FreeBSD 8.  Network
267         file system modules, such as igmp, ipdivert, and others, should be
268         rebuilt.
269         Bump __FreeBSD_version to 800096.
270
271 20090530:
272         Remove the tunable/sysctl debug.mpsafevfs as its initial purpose
273         is no more valid.
274
275 20090530:
276         Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
277         Bump __FreeBSD_version to 800094.
278
279 20090529:
280         Add mnt_xflag field to 'struct mount'.  File system modules
281         need to be rebuilt.
282         Bump __FreeBSD_version to 800093.
283
284 20090528:
285         The compiling option ADAPTIVE_SX has been retired while it has been
286         introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
287         The KPI for sx_init_flags() changes as accepting flags:
288         SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag
289         has been introduced in order to handle the reversed logic.
290         Bump __FreeBSD_version to 800092.
291
292 20090527:
293         Add support for hierarchical jails.  Remove global securelevel.
294         Bump __FreeBSD_version to 800091.
295
296 20090523:
297         The layout of struct vnet_net has changed, therefore modules
298         need to be rebuilt.
299         Bump __FreeBSD_version to 800090.
300
301 20090523:
302         The newly imported zic(8) produces a new format in the
303         output. Please run tzsetup(8) to install the newly created
304         data to /etc/localtime.
305
306 20090520:
307         The sysctl tree for the usb stack has renamed from hw.usb2.* to
308         hw.usb.* and is now consistent again with previous releases.
309
310 20090520:
311         802.11 monitor mode support was revised and driver api's
312         were changed.  Drivers dependent on net80211 now support
313         DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11.  No
314         user-visible data structures were changed but applications
315         that use DLT_IEEE802_11 may require changes.
316         Bump __FreeBSD_version to 800088.
317
318 20090430:
319         The layout of the following structs has changed: sysctl_oid,
320         socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
321         vnet_inet6 and vnet_ipfw.  Most modules need to be rebuild or
322         panics may be experienced.  World rebuild is required for
323         correctly checking networking state from userland.
324         Bump __FreeBSD_version to 800085.
325
326 20090429:
327         MLDv2 and Source-Specific Multicast (SSM) have been merged
328         to the IPv6 stack. VIMAGE hooks are in but not yet used.
329         The implementation of SSM within FreeBSD's IPv6 stack closely
330         follows the IPv4 implementation.
331
332         For kernel developers:
333
334         * The most important changes are that the ip6_output() and
335           ip6_input() paths no longer take the IN6_MULTI_LOCK,
336           and this lock has been downgraded to a non-recursive mutex.
337
338         * As with the changes to the IPv4 stack to support SSM, filtering
339           of inbound multicast traffic must now be performed by transport
340           protocols within the IPv6 stack. This does not apply to TCP and
341           SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
342
343         * The KPIs used by IPv6 multicast are similar to those used by
344           the IPv4 stack, with the following differences:
345            * im6o_mc_filter() is analogous to imo_multicast_filter().
346            * The legacy KAME entry points in6_joingroup and in6_leavegroup()
347              are shimmed to in6_mc_join() and in6_mc_leave() respectively.
348            * IN6_LOOKUP_MULTI() has been deprecated and removed.
349            * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
350              for MLDv1 have an additional 'timer' argument which is used to
351              jitter the initial membership report for the solicited-node
352              multicast membership on-link.
353            * This is not strictly needed for MLDv2, which already jitters
354              its report transmissions.  However, the 'timer' argument is
355              preserved in case MLDv1 is active on the interface.
356
357         * The KAME linked-list based IPv6 membership implementation has
358           been refactored to use a vector similar to that used by the IPv4
359           stack.
360           Code which maintains a list of its own multicast memberships
361           internally, e.g. carp, has been updated to reflect the new
362           semantics.
363
364         * There is a known Lock Order Reversal (LOR) due to in6_setscope()
365           acquiring the IF_AFDATA_LOCK and being called within ip6_output().
366           Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
367           implementation constraint which needs to be addressed in HEAD.
368
369         For application developers:
370
371         * The changes are broadly similar to those made for the IPv4
372           stack.
373
374         * The use of IPv4 and IPv6 multicast socket options on the same
375           socket, using mapped addresses, HAS NOT been tested or supported.
376
377         * There are a number of issues with the implementation of various
378           IPv6 multicast APIs which need to be resolved in the API surface
379           before the implementation is fully compatible with KAME userland
380           use, and these are mostly to do with interface index treatment.
381
382         * The literature available discusses the use of either the delta / ASM
383           API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
384           using setsourcefilter(3)/getsourcefilter(3). For more information
385           please refer to RFC 3768, 'Socket Interface Extensions for
386           Multicast Source Filters'.
387
388         * Applications which use the published RFC 3678 APIs should be fine.
389
390         For systems administrators:
391
392         * The mtest(8) utility has been refactored to support IPv6, in
393           addition to IPv4. Interface addresses are no longer accepted
394           as arguments, their names must be used instead. The utility
395           will map the interface name to its first IPv4 address as
396           returned by getifaddrs(3).
397
398         * The ifmcstat(8) utility has also been updated to print the MLDv2
399           endpoint state and source filter lists via sysctl(3).
400
401         * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
402           loopback of IPv6 multicast datagrams by default; it defaults to 1
403           to preserve the existing behaviour. Disabling multicast loopback is
404           recommended for optimal system performance.
405
406         * The IPv6 MROUTING code has been changed to examine this sysctl
407           instead of attempting to perform a group lookup before looping
408           back forwarded datagrams.
409
410         Bump __FreeBSD_version to 800084.
411
412 20090422:
413         Implement low-level Bluetooth HCI API.
414         Bump __FreeBSD_version to 800083.
415
416 20090419:
417         The layout of struct malloc_type, used by modules to register new
418         memory allocation types, has changed.  Most modules will need to
419         be rebuilt or panics may be experienced.
420         Bump __FreeBSD_version to 800081.
421
422 20090415:
423         Anticipate overflowing inp_flags - add inp_flags2.
424         This changes most offsets in inpcb, so checking v4 connection
425         state will require a world rebuild.
426         Bump __FreeBSD_version to 800080.
427
428 20090415:
429         Add an llentry to struct route and struct route_in6. Modules
430         embedding a struct route will need to be recompiled.
431         Bump __FreeBSD_version to 800079.
432
433 20090414:
434         The size of rt_metrics_lite and by extension rtentry has changed.
435         Networking administration apps will need to be recompiled.
436         The route command now supports show as an alias for get, weighting
437         of routes, sticky and nostick flags to alter the behavior of stateful
438         load balancing.
439         Bump __FreeBSD_version to 800078.
440
441 20090408:
442         Do not use Giant for kbdmux(4) locking. This is wrong and
443         apparently causing more problems than it solves. This will
444         re-open the issue where interrupt handlers may race with
445         kbdmux(4) in polling mode. Typical symptoms include (but
446         not limited to) duplicated and/or missing characters when
447         low level console functions (such as gets) are used while
448         interrupts are enabled (for example geli password prompt,
449         mountroot prompt etc.). Disabling kbdmux(4) may help.
450
451 20090407:
452         The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
453         kernel modules referencing any of the above need to be recompiled.
454         Bump __FreeBSD_version to 800075.
455
456 20090320:
457         GEOM_PART has become the default partition slicer for storage devices,
458         replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
459         introduces some changes:
460
461         MSDOS/EBR: the devices created from MSDOS extended partition entries
462         (EBR) can be named differently than with GEOM_MBR and are now symlinks
463         to devices with offset-based names. fstabs may need to be modified.
464
465         BSD: the "geometry does not match label" warning is harmless in most
466         cases but it points to problems in file system misalignment with
467         disk geometry. The "c" partition is now implicit, covers the whole
468         top-level drive and cannot be (mis)used by users.
469
470         General: Kernel dumps are now not allowed to be written to devices
471         whose partition types indicate they are meant to be used for file
472         systems (or, in case of MSDOS partitions, as something else than
473         the "386BSD" type).
474
475         Most of these changes date approximately from 200812.
476
477 20090319:
478         The uscanner(4) driver has been removed from the kernel. This follows
479         Linux removing theirs in 2.6 and making libusb the default interface
480         (supported by sane).
481
482 20090319:
483         The multicast forwarding code has been cleaned up. netstat(1)
484         only relies on KVM now for printing bandwidth upcall meters.
485         The IPv4 and IPv6 modules are split into ip_mroute_mod and
486         ip6_mroute_mod respectively. The config(5) options for statically
487         compiling this code remain the same, i.e. 'options MROUTING'.
488
489 20090315:
490         Support for the IFF_NEEDSGIANT network interface flag has been
491         removed, which means that non-MPSAFE network device drivers are no
492         longer supported.  In particular, if_ar, if_sr, and network device
493         drivers from the old (legacy) USB stack can no longer be built or
494         used.
495
496 20090313:
497         POSIX.1 Native Language Support (NLS) has been enabled in libc and
498         a bunch of new language catalog files have also been added.
499         This means that some common libc messages are now localized and
500         they depend on the LC_MESSAGES environmental variable.
501
502 20090313:
503         The k8temp(4) driver has been renamed to amdtemp(4) since
504         support for K10 and K11 CPU families was added.
505
506 20090309:
507         IGMPv3 and Source-Specific Multicast (SSM) have been merged
508         to the IPv4 stack. VIMAGE hooks are in but not yet used.
509
510         For kernel developers, the most important changes are that the
511         ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
512         and this lock has been downgraded to a non-recursive mutex.
513
514         Transport protocols (UDP, Raw IP) are now responsible for filtering
515         inbound multicast traffic according to group membership and source
516         filters. The imo_multicast_filter() KPI exists for this purpose.
517         Transports which do not use multicast (SCTP, TCP) already reject
518         multicast by default. Forwarding and receive performance may improve
519         as a mutex acquisition is no longer needed in the ip_input()
520         low-level input path.  in_addmulti() and in_delmulti() are shimmed
521         to new KPIs which exist to support SSM in-kernel.
522
523         For application developers, it is recommended that loopback of
524         multicast datagrams be disabled for best performance, as this
525         will still cause the lock to be taken for each looped-back
526         datagram transmission. The net.inet.ip.mcast.loop sysctl may
527         be tuned to 0 to disable loopback by default; it defaults to 1
528         to preserve the existing behaviour.
529
530         For systems administrators, to obtain best performance with
531         multicast reception and multiple groups, it is always recommended
532         that a card with a suitably precise hash filter is used. Hash
533         collisions will still result in the lock being taken within the
534         transport protocol input path to check group membership.
535
536         If deploying FreeBSD in an environment with IGMP snooping switches,
537         it is recommended that the net.inet.igmp.sendlocal sysctl remain
538         enabled; this forces 224.0.0.0/24 group membership to be announced
539         via IGMP.
540
541         The size of 'struct igmpstat' has changed; netstat needs to be
542         recompiled to reflect this.
543         Bump __FreeBSD_version to 800070.
544
545 20090309:
546         libusb20.so.1 is now installed as libusb.so.1 and the ports system
547         updated to use it. This requires a buildworld/installworld in order to
548         update the library and dependencies (usbconfig, etc). Its advisable to
549         rebuild all ports which uses libusb. More specific directions are given
550         in the ports collection UPDATING file. Any /etc/libmap.conf entries for
551         libusb are no longer required and can be removed.
552
553 20090302:
554         A workaround is committed to allow the creation of System V shared
555         memory segment of size > 2 GB on the 64-bit architectures.
556         Due to a limitation of the existing ABI, the shm_segsz member
557         of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
558         wrong for large segments. Note that limits must be explicitly
559         raised to allow such segments to be created.
560
561 20090301:
562         The layout of struct ifnet has changed, requiring a rebuild of all
563         network device driver modules.
564
565 20090227:
566         The /dev handling for the new USB stack has changed, a
567         buildworld/installworld is required for libusb20.
568
569 20090223:
570         The new USB2 stack has now been permanently moved in and all kernel and
571         module names reverted to their previous values (eg, usb, ehci, ohci,
572         ums, ...).  The old usb stack can be compiled in by prefixing the name
573         with the letter 'o', the old usb modules have been removed.
574         Updating entry 20090216 for xorg and 20090215 for libmap may still
575         apply.
576
577 20090217:
578         The rc.conf(5) option if_up_delay has been renamed to
579         defaultroute_delay to better reflect its purpose. If you have
580         customized this setting in /etc/rc.conf you need to update it to
581         use the new name.
582
583 20090216:
584         xorg 7.4 wants to configure its input devices via hald which does not
585         yet work with USB2. If the keyboard/mouse does not work in xorg then
586         add
587                 Option "AllowEmptyInput" "off"
588         to your ServerLayout section.  This will cause X to use the configured
589         kbd and mouse sections from your xorg.conf.
590
591 20090215:
592         The GENERIC kernels for all architectures now default to the new USB2
593         stack. No kernel config options or code have been removed so if a
594         problem arises please report it and optionally revert to the old USB
595         stack. If you are loading USB kernel modules or have a custom kernel
596         that includes GENERIC then ensure that usb names are also changed over,
597         eg uftdi -> usb2_serial_ftdi.
598
599         Older programs linked against the ports libusb 0.1 need to be
600         redirected to the new stack's libusb20.  /etc/libmap.conf can
601         be used for this:
602                 # Map old usb library to new one for usb2 stack
603                 libusb-0.1.so.8 libusb20.so.1
604
605 20090209:
606         All USB ethernet devices now attach as interfaces under the name ueN
607         (eg. ue0). This is to provide a predictable name as vendors often
608         change usb chipsets in a product without notice.
609
610 20090203:
611         The ichsmb(4) driver has been changed to require SMBus slave
612         addresses be left-justified (xxxxxxx0b) rather than right-justified.
613         All of the other SMBus controller drivers require left-justified
614         slave addresses, so this change makes all the drivers provide the
615         same interface.
616
617 20090201:
618         INET6 statistics (struct ip6stat) was updated.
619         netstat(1) needs to be recompiled.
620
621 20090119:
622         NTFS has been removed from GENERIC kernel on amd64 to match
623         GENERIC on i386. Should not cause any issues since mount_ntfs(8)
624         will load ntfs.ko module automatically when NTFS support is
625         actually needed, unless ntfs.ko is not installed or security
626         level prohibits loading kernel modules. If either is the case,
627         "options NTFS" has to be added into kernel config.
628
629 20090115:
630         TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
631         New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
632         800061. User space tools that rely on the size of struct tcpcb in
633         tcp_var.h (e.g. sockstat) need to be recompiled.
634
635 20081225:
636         ng_tty(4) module updated to match the new TTY subsystem.
637         Due to API change, user-level applications must be updated.
638         New API support added to mpd5 CVS and expected to be present
639         in next mpd5.3 release.
640
641 20081219:
642         With __FreeBSD_version 800060 the makefs tool is part of
643         the base system (it was a port).
644
645 20081216:
646         The afdata and ifnet locks have been changed from mutexes to
647         rwlocks, network modules will need to be re-compiled.
648
649 20081214:
650         __FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
651         RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
652         The new code reduced struct rtentry{} by 16 bytes on 32-bit
653         architecture and 40 bytes on 64-bit architecture. The userland
654         applications "arp" and "ndp" have been updated accordingly.
655         The output from "netstat -r" shows only routing entries and
656         none of the L2 information.
657
658 20081130:
659         __FreeBSD_version 800057 marks the switchover from the
660         binary ath hal to source code. Users must add the line:
661
662         options AH_SUPPORT_AR5416
663
664         to their kernel config files when specifying:
665
666         device  ath_hal
667
668         The ath_hal module no longer exists; the code is now compiled
669         together with the driver in the ath module.  It is now
670         possible to tailor chip support (i.e. reduce the set of chips
671         and thereby the code size); consult ath_hal(4) for details.
672
673 20081121:
674         __FreeBSD_version 800054 adds memory barriers to
675         <machine/atomic.h>, new interfaces to ifnet to facilitate
676         multiple hardware transmit queues for cards that support
677         them, and a lock-less ring-buffer implementation to
678         enable drivers to more efficiently manage queueing of
679         packets.
680
681 20081117:
682         A new version of ZFS (version 13) has been merged to -HEAD.
683         This version has zpool attribute "listsnapshots" off by
684         default, which means "zfs list" does not show snapshots,
685         and is the same as Solaris behavior.
686
687 20081028:
688         dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
689
690 20081009:
691         The uhci, ohci, ehci and slhci USB Host controller drivers have
692         been put into separate modules. If you load the usb module
693         separately through loader.conf you will need to load the
694         appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
695         controller add the following to loader.conf:
696
697                 uhci_load="YES"
698                 ehci_load="YES"
699
700 20081009:
701         The ABI used by the PMC toolset has changed.  Please keep
702         userland (libpmc(3)) and the kernel module (hwpmc(4)) in
703         sync.
704
705 20081009:
706         atapci kernel module now includes only generic PCI ATA
707         driver. AHCI driver moved to ataahci kernel module.
708         All vendor-specific code moved into separate kernel modules:
709         ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
710         atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
711         atamarvell, atamicron, atanational, atanetcell, atanvidia,
712         atapromise, ataserverworks, atasiliconimage, atasis, atavia
713
714 20080820:
715         The TTY subsystem of the kernel has been replaced by a new
716         implementation, which provides better scalability and an
717         improved driver model. Most common drivers have been migrated to
718         the new TTY subsystem, while others have not. The following
719         drivers have not yet been ported to the new TTY layer:
720
721         PCI/ISA:
722                 cy, digi, rc, rp, sio
723
724         USB:
725                 ubser, ucycom
726
727         Line disciplines:
728                 ng_h4, ng_tty, ppp, sl, snp
729
730         Adding these drivers to your kernel configuration file shall
731         cause compilation to fail.
732
733 20080818:
734         ntpd has been upgraded to 4.2.4p5.
735
736 20080801:
737         OpenSSH has been upgraded to 5.1p1.
738
739         For many years, FreeBSD's version of OpenSSH preferred DSA
740         over RSA for host and user authentication keys.  With this
741         upgrade, we've switched to the vendor's default of RSA over
742         DSA.  This may cause upgraded clients to warn about unknown
743         host keys even for previously known hosts.  Users should
744         follow the usual procedure for verifying host keys before
745         accepting the RSA key.
746
747         This can be circumvented by setting the "HostKeyAlgorithms"
748         option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
749         command line.
750
751         Please note that the sequence of keys offered for
752         authentication has been changed as well.  You may want to
753         specify IdentityFile in a different order to revert this
754         behavior.
755
756 20080713:
757         The sio(4) driver has been removed from the i386 and amd64
758         kernel configuration files. This means uart(4) is now the
759         default serial port driver on those platforms as well.
760
761         To prevent collisions with the sio(4) driver, the uart(4) driver
762         uses different names for its device nodes. This means the
763         onboard serial port will now most likely be called "ttyu0"
764         instead of "ttyd0". You may need to reconfigure applications to
765         use the new device names.
766
767         When using the serial port as a boot console, be sure to update
768         /boot/device.hints and /etc/ttys before booting the new kernel.
769         If you forget to do so, you can still manually specify the hints
770         at the loader prompt:
771
772                 set hint.uart.0.at="isa"
773                 set hint.uart.0.port="0x3F8"
774                 set hint.uart.0.flags="0x10"
775                 set hint.uart.0.irq="4"
776                 boot -s
777
778 20080609:
779         The gpt(8) utility has been removed. Use gpart(8) to partition
780         disks instead.
781
782 20080603:
783         The version that Linuxulator emulates was changed from 2.4.2
784         to 2.6.16. If you experience any problems with Linux binaries
785         please try to set sysctl compat.linux.osrelease to 2.4.2 and
786         if it fixes the problem contact emulation mailing list.
787
788 20080525:
789         ISDN4BSD (I4B) was removed from the src tree. You may need to
790         update a your kernel configuration and remove relevant entries.
791
792 20080509:
793         I have checked in code to support multiple routing tables.
794         See the man pages setfib(1) and setfib(2).
795         This is a hopefully backwards compatible version,
796         but to make use of it you need to compile your kernel
797         with options ROUTETABLES=2 (or more up to 16).
798
799 20080420:
800         The 802.11 wireless support was redone to enable multi-bss
801         operation on devices that are capable.  The underlying device
802         is no longer used directly but instead wlanX devices are
803         cloned with ifconfig.  This requires changes to rc.conf files.
804         For example, change:
805                 ifconfig_ath0="WPA DHCP"
806         to
807                 wlans_ath0=wlan0
808                 ifconfig_wlan0="WPA DHCP"
809         see rc.conf(5) for more details.  In addition, mergemaster of
810         /etc/rc.d is highly recommended.  Simultaneous update of userland
811         and kernel wouldn't hurt either.
812
813         As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
814         modules were merged into the base wlan module.  All references
815         to these modules (e.g. in kernel config files) must be removed.
816
817 20080408:
818         psm(4) has gained write(2) support in native operation level.
819         Arbitrary commands can be written to /dev/psm%d and status can
820         be read back from it.  Therefore, an application is responsible
821         for status validation and error recovery.  It is a no-op in
822         other operation levels.
823
824 20080312:
825         Support for KSE threading has been removed from the kernel.  To
826         run legacy applications linked against KSE libmap.conf may
827         be used.  The following libmap.conf may be used to ensure
828         compatibility with any prior release:
829
830         libpthread.so.1 libthr.so.1
831         libpthread.so.2 libthr.so.2
832         libkse.so.3 libthr.so.3
833
834 20080301:
835         The layout of struct vmspace has changed. This affects libkvm
836         and any executables that link against libkvm and use the
837         kvm_getprocs() function. In particular, but not exclusively,
838         it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
839         The effects are minimal, but it's advisable to upgrade world
840         nonetheless.
841
842 20080229:
843         The latest em driver no longer has support in it for the
844         82575 adapter, this is now moved to the igb driver. The
845         split was done to make new features that are incompatible
846         with older hardware easier to do.
847
848 20080220:
849         The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
850         likewise the kernel option is now GEOM_LINUX_LVM.
851
852 20080211:
853         The default NFS mount mode has changed from UDP to TCP for
854         increased reliability.  If you rely on (insecurely) NFS
855         mounting across a firewall you may need to update your
856         firewall rules.
857
858 20080208:
859         Belatedly note the addition of m_collapse for compacting
860         mbuf chains.
861
862 20080126:
863         The fts(3) structures have been changed to use adequate
864         integer types for their members and so to be able to cope
865         with huge file trees.  The old fts(3) ABI is preserved
866         through symbol versioning in libc, so third-party binaries
867         using fts(3) should still work, although they will not take
868         advantage of the extended types.  At the same time, some
869         third-party software might fail to build after this change
870         due to unportable assumptions made in its source code about
871         fts(3) structure members.  Such software should be fixed
872         by its vendor or, in the worst case, in the ports tree.
873         FreeBSD_version 800015 marks this change for the unlikely
874         case that a portable fix is impossible.
875
876 20080123:
877         To upgrade to -current after this date, you must be running
878         FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
879         from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
880
881 20071128:
882         The ADAPTIVE_GIANT kernel option has been retired because its
883         functionality is the default now.
884
885 20071118:
886         The AT keyboard emulation of sunkbd(4) has been turned on
887         by default. In order to make the special symbols of the Sun
888         keyboards driven by sunkbd(4) work under X these now have
889         to be configured the same way as Sun USB keyboards driven
890         by ukbd(4) (which also does AT keyboard emulation), f.e.:
891
892         Option  "XkbLayout" "us"
893         Option  "XkbRules" "xorg"
894         Option  "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
895
896 20071024:
897         It has been decided that it is desirable to provide ABI
898         backwards compatibility to the FreeBSD 4/5/6 versions of the
899         PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
900         broken with the introduction of PCI domain support (see the
901         20070930 entry). Unfortunately, this required the ABI of
902         PCIOCGETCONF to be broken again in order to be able to
903         provide backwards compatibility to the old version of that
904         IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
905         again. As for prominent ports this affects neither pciutils
906         nor xorg-server this time, the hal port needs to be rebuilt
907         however.
908
909 20071020:
910         The misnamed kthread_create() and friends have been renamed
911         to kproc_create() etc. Many of the callers already
912         used kproc_start()..
913         I will return kthread_create() and friends in a while
914         with implementations that actually create threads, not procs.
915         Renaming corresponds with version 800002.
916
917 20071010:
918         RELENG_7 branched.
919
920 20071009:
921         Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and
922         WITHOUT_LIBTHR are set.
923
924 20070930:
925         The PCI code has been made aware of PCI domains. This means that
926         the location strings as used by pciconf(8) etc are now in the
927         following format: pci<domain>:<bus>:<device>[:<function>]. It
928         also means that consumers of <sys/pciio.h> potentially need to
929         be recompiled; this includes the hal and xorg-server ports.
930
931 20070928:
932         The caching daemon (cached) was renamed to nscd. nscd.conf
933         configuration file should be used instead of cached.conf and
934         nscd_enable, nscd_pidfile and nscd_flags options should be used
935         instead of cached_enable, cached_pidfile and cached_flags in
936         rc.conf.
937
938 20070921:
939         The getfacl(1) utility now prints owning user and group name
940         instead of owning uid and gid in the three line comment header.
941         This is the same behavior as getfacl(1) on Solaris and Linux.
942
943 20070704:
944         The new IPsec code is now compiled in using the IPSEC option.  The
945         IPSEC option now requires "device crypto" be defined in your kernel
946         configuration.  The FAST_IPSEC kernel option is now deprecated.
947
948 20070702:
949         The packet filter (pf) code has been updated to OpenBSD 4.1 Please
950         note the changed syntax - keep state is now on by default.  Also
951         note the fact that ftp-proxy(8) has been changed from bottom up and
952         has been moved from libexec to usr/sbin.  Changes in the ALTQ
953         handling also affect users of IPFW's ALTQ capabilities.
954
955 20070701:
956         Remove KAME IPsec in favor of FAST_IPSEC, which is now the
957         only IPsec supported by FreeBSD.  The new IPsec stack
958         supports both IPv4 and IPv6. The kernel option will change
959         after the code changes have settled in.  For now the kernel
960         option IPSEC is deprecated and FAST_IPSEC is the only option, that
961         will change after some settling time.
962
963 20070701:
964         The wicontrol(8) utility has been removed from the base system. wi(4)
965         cards should be configured using ifconfig(8), see the man page for more
966         information.
967
968 20070612:
969         The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
970         instead of the nve(4) driver. Please update your configuration
971         accordingly.
972
973 20070612:
974         By default, /etc/rc.d/sendmail no longer rebuilds the aliases
975         database if it is missing or older than the aliases file.  If
976         desired, set the new rc.conf option sendmail_rebuild_aliases
977         to "YES" to restore that functionality.
978
979 20070612:
980         The IPv4 multicast socket code has been considerably modified, and
981         moved to the file sys/netinet/in_mcast.c. Initial support for the
982         RFC 3678 Source-Specific Multicast Socket API has been added to
983         the IPv4 network stack.
984
985         Strict multicast and broadcast reception is now the default for
986         UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
987         has now been removed.
988
989         The RFC 1724 hack for interface selection has been removed; the use
990         of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
991         been added to replace it. Consumers such as routed will soon be
992         updated to reflect this.
993
994         These changes affect users who are running routed(8) or rdisc(8)
995         from the FreeBSD base system on point-to-point or unnumbered
996         interfaces.
997
998 20070610:
999         The net80211 layer has changed significantly and all wireless
1000         drivers that depend on it need to be recompiled.  Further these
1001         changes require that any program that interacts with the wireless
1002         support in the kernel be recompiled; this includes: ifconfig,
1003         wpa_supplicant, hostapd, and wlanstats.  Users must also, for
1004         the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
1005         if they use modules for wireless support.  These modules implement
1006         scanning support for station and ap modes, respectively.  Failure
1007         to load the appropriate module before marking a wireless interface
1008         up will result in a message to the console and the device not
1009         operating properly.
1010
1011 20070610:
1012         The pam_nologin(8) module ceases to provide an authentication
1013         function and starts providing an account management function.
1014         Consequent changes to /etc/pam.d should be brought in using
1015         mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
1016         need manual editing as follows.  Locate this line (or similar):
1017
1018                 auth    required        pam_nologin.so  no_warn
1019
1020         and change it according to this example:
1021
1022                 account required        pam_nologin.so  no_warn
1023
1024         That is, the first word needs to be changed from "auth" to
1025         "account".  The new line can be moved to the account section
1026         within the file for clarity.  Not updating pam.conf(5) files
1027         will result in nologin(5) ignored by the respective services.
1028
1029 20070529:
1030         The ether_ioctl() function has been synchronized with ioctl(2)
1031         and ifnet.if_ioctl.  Due to that, the size of one of its arguments
1032         has changed on 64-bit architectures.  All kernel modules using
1033         ether_ioctl() need to be rebuilt on such architectures.
1034
1035 20070516:
1036         Improved INCLUDE_CONFIG_FILE support has been introduced to the
1037         config(8) utility. In order to take advantage of this new
1038         functionality, you are expected to recompile and install
1039         src/usr.sbin/config. If you don't rebuild config(8), and your
1040         kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
1041         build will be broken because of a missing "kernconfstring"
1042         symbol.
1043
1044 20070513:
1045         Symbol versioning is enabled by default.  To disable it, use
1046         option WITHOUT_SYMVER.  It is not advisable to attempt to
1047         disable symbol versioning once it is enabled; your installworld
1048         will break because a symbol version-less libc will get installed
1049         before the install tools.  As a result, the old install tools,
1050         which previously had symbol dependencies to FBSD_1.0, will fail
1051         because the freshly installed libc will not have them.
1052
1053         The default threading library (providing "libpthread") has been
1054         changed to libthr.  If you wish to have libkse as your default,
1055         use option DEFAULT_THREAD_LIB=libkse for the buildworld.
1056
1057 20070423:
1058         The ABI breakage in sendmail(8)'s libmilter has been repaired
1059         so it is no longer necessary to recompile mail filters (aka,
1060         milters).  If you recompiled mail filters after the 20070408
1061         note, it is not necessary to recompile them again.
1062
1063 20070417:
1064         The new trunk(4) driver has been renamed to lagg(4) as it better
1065         reflects its purpose. ifconfig will need to be recompiled.
1066
1067 20070408:
1068         sendmail(8) has been updated to version 8.14.1.  Mail filters
1069         (aka, milters) compiled against the libmilter included in the
1070         base operating system should be recompiled.
1071
1072 20070302:
1073         Firmwares for ipw(4) and iwi(4) are now included in the base tree.
1074         In order to use them one must agree to the respective LICENSE in
1075         share/doc/legal and define legal.intel_<name>.license_ack=1 via
1076         loader.conf(5) or kenv(1).  Make sure to deinstall the now
1077         deprecated modules from the respective firmware ports.
1078
1079 20070228:
1080         The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
1081         were removed from FreeBSD's libc. These originally came from INRIA
1082         IPv6. Nothing in FreeBSD ever used them. They may be regarded as
1083         deprecated in previous releases.
1084         The AF_LINK support for getnameinfo(3) was merged from NetBSD to
1085         replace it as a more portable (and re-entrant) API.
1086
1087 20070224:
1088         To support interrupt filtering a modification to the newbus API
1089         has occurred, ABI was broken and __FreeBSD_version was bumped
1090         to 700031. Please make sure that your kernel and modules are in
1091         sync. For more info:
1092         http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
1093
1094 20070224:
1095         The IPv6 multicast forwarding code may now be loaded into GENERIC
1096         kernels by loading the ip_mroute.ko module. This is built into the
1097         module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
1098         set; see src.conf(5) for more information.
1099
1100 20070214:
1101         The output of netstat -r has changed. Without -n, we now only
1102         print a "network name" without the prefix length if the network
1103         address and mask exactly match a Class A/B/C network, and an entry
1104         exists in the nsswitch "networks" map.
1105         With -n, we print the full unabbreviated CIDR network prefix in
1106         the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
1107         This change is in preparation for changes such as equal-cost
1108         multipath, and to more generally assist operational deployment
1109         of FreeBSD as a modern IPv4 router.
1110
1111 20070210:
1112         PIM has been turned on by default in the IPv4 multicast
1113         routing code. The kernel option 'PIM' has now been removed.
1114         PIM is now built by default if option 'MROUTING' is specified.
1115         It may now be loaded into GENERIC kernels by loading the
1116         ip_mroute.ko module.
1117
1118 20070207:
1119         Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
1120         has been removed. Its functionality may be achieved by explicitly
1121         configuring gif(4) interfaces and using the 'phyint' keyword in
1122         mrouted.conf.
1123         XORP does not support source-routed IPv4 multicast tunnels nor the
1124         integrated IPIP tunneling, therefore it is not affected by this
1125         change. The __FreeBSD_version macro has been bumped to 700030.
1126
1127 20061221:
1128         Support for PCI Message Signalled Interrupts has been
1129         re-enabled in the bge driver, only for those chips which are
1130         believed to support it properly.  If there are any problems,
1131         MSI can be disabled completely by setting the
1132         'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
1133         in the loader.
1134
1135 20061214:
1136         Support for PCI Message Signalled Interrupts has been
1137         disabled again in the bge driver.  Many revisions of the
1138         hardware fail to support it properly.  Support can be
1139         re-enabled by removing the #define of BGE_DISABLE_MSI in
1140         "src/sys/dev/bge/if_bge.c".
1141
1142 20061214:
1143         Support for PCI Message Signalled Interrupts has been added
1144         to the bge driver.  If there are any problems, MSI can be
1145         disabled completely by setting the 'hw.pci.enable_msi' and
1146         'hw.pci.enable_msix' tunables to 0 in the loader.
1147
1148 20061205:
1149         The removal of several facets of the experimental Threading
1150         system from the kernel means that the proc and thread structures
1151         have changed quite a bit. I suggest all kernel modules that might
1152         reference these structures be recompiled.. Especially the
1153         linux module.
1154
1155 20061126:
1156         Sound infrastructure has been updated with various fixes and
1157         improvements. Most of the changes are pretty much transparent,
1158         with exceptions of followings:
1159         1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
1160            moved to their own dev sysctl nodes, for example:
1161                 hw.snd.pcm0.vchans -> dev.pcm.0.vchans
1162         2) /dev/dspr%d.%d has been deprecated. Each channel now has its
1163            own chardev in the form of "dsp%d.<function>%d", where <function>
1164            is p = playback, r = record and v = virtual, respectively. Users
1165            are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
1166            This does not affect those who are using "/dev/dsp".
1167
1168 20061122:
1169         geom(4)'s gmirror(8) class metadata structure has been
1170         rev'd from v3 to v4. If you update across this point and
1171         your metadata is converted for you, you will not be easily
1172         able to downgrade since the /boot/kernel.old/geom_mirror.ko
1173         kernel module will be unable to read the v4 metadata.  You
1174         can resolve this by doing from the loader(8) prompt:
1175
1176                 set vfs.root.mountfrom="ufs:/dev/XXX"
1177
1178         where XXX is the root slice of one of the disks that composed
1179         the mirror (i.e.: /dev/ad0s1a). You can then rebuild
1180         the array the same way you built it originally.
1181
1182 20061122:
1183         The following binaries have been disconnected from the build:
1184         mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
1185         and mount_std.  The functionality of these programs has been
1186         moved into the mount program.  For example, to mount a devfs
1187         filesystem, instead of using mount_devfs, use: "mount -t devfs".
1188         This does not affect entries in /etc/fstab, since entries in
1189         /etc/fstab are always processed with "mount -t fstype".
1190
1191 20061113:
1192         Support for PCI Message Signalled Interrupts on i386 and amd64
1193         has been added to the kernel and various drivers will soon be
1194         updated to use MSI when it is available.  If there are any problems,
1195         MSI can be disabled completely by setting the 'hw.pci.enable_msi'
1196         and 'hw.pci.enable_msix' tunables to 0 in the loader.
1197
1198 20061110:
1199         The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
1200         The lockmgr object layout has been changed as a result of having
1201         a lock_object embedded in it. As a consequence all file system
1202         kernel modules must be re-compiled. The mutex profiling man page
1203         has not yet been updated to reflect this change.
1204
1205 20061026:
1206         KSE in the kernel has now been made optional and turned on by
1207         default. Use 'nooption KSE' in your kernel config to turn it
1208         off. All kernel modules *must* be recompiled after this change.
1209         There-after, modules from a KSE kernel should be compatible with
1210         modules from a NOKSE kernel due to the temporary padding fields
1211         added to 'struct proc'.
1212
1213 20060929:
1214         mrouted and its utilities have been removed from the base system.
1215
1216 20060927:
1217         Some ioctl(2) command codes have changed.  Full backward ABI
1218         compatibility is provided if the "options COMPAT_FREEBSD6" is
1219         present in the kernel configuration file.  Make sure to add
1220         this option to your kernel config file, or recompile X.Org
1221         and the rest of ports; otherwise they may refuse to work.
1222
1223 20060924:
1224         tcpslice has been removed from the base system.
1225
1226 20060913:
1227         The sizes of struct tcpcb (and struct xtcpcb) have changed due to
1228         the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
1229         systat needs to be rebuilt.
1230
1231 20060903:
1232         libpcap updated to v0.9.4 and tcpdump to v3.9.4
1233
1234 20060816:
1235         The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
1236         for IPFIREWALL_FORWARD is now as it was before when it was first
1237         committed and for years after. The behaviour is now ON.
1238
1239 20060725:
1240         enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
1241         Now it can decrypt files created from different architectures.
1242         Unfortunately, it is no longer able to decrypt a cipher text
1243         generated with an older version on 64 bit architectures.
1244         If you have such a file, you need old utility to decrypt it.
1245
1246 20060709:
1247         The interface version of the i4b kernel part has changed. So
1248         after updating the kernel sources and compiling a new kernel,
1249         the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
1250         be rebuilt, and vice versa.
1251
1252 20060627:
1253         The XBOX kernel now defaults to the nfe(4) driver instead of
1254         the nve(4) driver. Please update your configuration
1255         accordingly.
1256
1257 20060514:
1258         The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
1259         PCnet family of NICs has been removed. The new le(4) driver serves
1260         as an equivalent but cross-platform replacement with the pcn(4)
1261         driver still providing performance-optimized support for the subset
1262         of AMD Am79C971 PCnet-FAST and greater chips as before.
1263
1264 20060511:
1265         The machdep.* sysctls and the adjkerntz utility have been
1266         modified a bit.  The new adjkerntz utility uses the new
1267         sysctl names and sysctlbyname() calls, so it may be impossible
1268         to run an old /sbin/adjkerntz utility in single-user mode
1269         with a new kernel.  Replace the `adjkerntz -i' step before
1270         `make installworld' with:
1271
1272             /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
1273
1274         and proceed as usual with the rest of the installworld-stage
1275         steps.  Otherwise, you risk installing binaries with their
1276         timestamp set several hours in the future, especially if
1277         you are running with local time set to GMT+X hours.
1278
1279 20060412:
1280         The ip6fw utility has been removed.  The behavior provided by
1281         ip6fw has been in ipfw2 for a good while and the rc.d scripts
1282         have been updated to deal with it.  There are some rules that
1283         might not migrate cleanly.  Use rc.firewall6 as a template to
1284         rewrite rules.
1285
1286 20060428:
1287         The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
1288         attachments have been removed. Make sure to configure scc(4)
1289         on sparc64. Note also that by default puc(4) will use uart(4)
1290         and not sio(4) for serial ports because interrupt handling has
1291         been optimized for multi-port serial cards and only uart(4)
1292         implements the interface to support it.
1293
1294 20060330:
1295         The scc(4) driver replaces puc(4) for Serial Communications
1296         Controllers (SCCs) like the Siemens SAB82532 and the Zilog
1297         Z8530. On sparc64, it is advised to add scc(4) to the kernel
1298         configuration to make sure that the serial ports remain
1299         functional.
1300
1301 20060317:
1302         Most world/kernel related NO_* build options changed names.
1303         New knobs have common prefixes WITHOUT_*/WITH_* (modelled
1304         after FreeBSD ports) and should be set in /etc/src.conf
1305         (the src.conf(5) manpage is provided).  Full backwards
1306         compatibility is maintained for the time being though it's
1307         highly recommended to start moving old options out of the
1308         system-wide /etc/make.conf file into the new /etc/src.conf
1309         while also properly renaming them.  More conversions will
1310         likely follow.  Posting to current@:
1311
1312         http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
1313
1314 20060305:
1315         The NETSMBCRYPTO kernel option has been retired because its
1316         functionality is always included in NETSMB and smbfs.ko now.
1317
1318 20060303:
1319         The TDFX_LINUX kernel option was retired and replaced by the
1320         tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
1321         kernel module.  Loading it alone should suffice to get 3dfx support
1322         for Linux apps because it will pull in 3dfx.ko and linux.ko through
1323         its dependencies.
1324
1325 20060204:
1326         The 'audit' group was added to support the new auditing functionality
1327         in the base system.  Be sure to follow the directions for updating,
1328         including the requirement to run mergemaster -p.
1329
1330 20060201:
1331         The kernel ABI to file system modules was changed on i386.
1332         Please make sure that your kernel and modules are in sync.
1333
1334 20060118:
1335         This actually occured some time ago, but installing the kernel
1336         now also installs a bunch of symbol files for the kernel modules.
1337         This increases the size of /boot/kernel to about 67Mbytes. You
1338         will need twice this if you will eventually back this up to kernel.old
1339         on your next install.
1340         If you have a shortage of room in your root partition, you should add
1341         -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
1342         to your /etc/make.conf.
1343
1344 20060113:
1345         libc's malloc implementation has been replaced.  This change has the
1346         potential to uncover application bugs that previously went unnoticed.
1347         See the malloc(3) manual page for more details.
1348
1349 20060112:
1350         The generic netgraph(4) cookie has been changed. If you upgrade
1351         kernel passing this point, you also need to upgrade userland
1352         and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
1353
1354 20060106:
1355         si(4)'s device files now contain the unit number.
1356         Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
1357
1358 20060106:
1359         The kernel ABI was mostly destroyed due to a change in the size
1360         of struct lock_object which is nested in other structures such
1361         as mutexes which are nested in all sorts of other structures.
1362         Make sure your kernel and modules are in sync.
1363
1364 20051231:
1365         The page coloring algorithm in the VM subsystem was converted
1366         from tuning with kernel options to autotuning. Please remove
1367         any PQ_* option except PQ_NOOPT from your kernel config.
1368
1369 20051211:
1370         The net80211-related tools in the tools/tools/ath directory
1371         have been moved to tools/tools/net80211 and renamed with a
1372         "wlan" prefix.  Scripts that use them should be adjusted
1373         accordingly.
1374
1375 20051202:
1376         Scripts in the local_startup directories (as defined in
1377         /etc/defaults/rc.conf) that have the new rc.d semantics will
1378         now be run as part of the base system rcorder. If there are
1379         errors or problems with one of these local scripts, it could
1380         cause boot problems. If you encounter such problems, boot in
1381         single user mode, remove that script from the */rc.d directory.
1382         Please report the problem to the port's maintainer, and the
1383         freebsd-ports@freebsd.org mailing list.
1384
1385 20051129:
1386         The nodev mount option was deprecated in RELENG_6 (where it
1387         was a no-op), and is now unsupported.  If you have nodev or dev listed
1388         in /etc/fstab, remove it, otherwise it will result in a mount error.
1389
1390 20051129:
1391         ABI between ipfw(4) and ipfw(8) has been changed. You need
1392         to rebuild ipfw(8) when rebuilding kernel.
1393
1394 20051108:
1395         rp(4)'s device files now contain the unit number.
1396         Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
1397
1398 20051029:
1399         /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
1400         Its /etc/rc.conf.d configuration file has been `ppp' from
1401         the beginning, and hence there is no need to touch it.
1402
1403 20051014:
1404         Now most modules get their build-time options from the kernel
1405         configuration file.  A few modules still have fixed options
1406         due to their non-conformant implementation, but they will be
1407         corrected eventually.  You may need to review the options of
1408         the modules in use, explicitly specify the non-default options
1409         in the kernel configuration file, and rebuild the kernel and
1410         modules afterwards.
1411
1412 20051001:
1413         kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
1414         to turn polling(4) on your interfaces.
1415
1416 20050927:
1417         The old bridge(4) implementation was retired.  The new
1418         if_bridge(4) serves as a full functional replacement.
1419
1420 20050722:
1421         The ai_addrlen of a struct addrinfo was changed to a socklen_t
1422         to conform to POSIX-2001.  This change broke an ABI
1423         compatibility on 64 bit architecture.  You have to recompile
1424         userland programs that use getaddrinfo(3) on 64 bit
1425         architecture.
1426
1427 20050711:
1428         RELENG_6 branched here.
1429
1430 20050629:
1431         The pccard_ifconfig rc.conf variable has been removed and a new
1432         variable, ifconfig_DEFAULT has been introduced.  Unlike
1433         pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
1434         do not have ifconfig_ifn entries rather than just those in
1435         removable_interfaces.
1436
1437 20050616:
1438         Some previous versions of PAM have permitted the use of
1439         non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
1440         to third party PAM modules in /usr/local/lib.  A change has been
1441         made to require the use of absolute paths in order to avoid
1442         ambiguity and dependence on library path configuration, which may
1443         affect existing configurations.
1444
1445 20050610:
1446         Major changes to network interface API.  All drivers must be
1447         recompiled.  Drivers not in the base system will need to be
1448         updated to the new APIs.
1449
1450 20050609:
1451         Changes were made to kinfo_proc in sys/user.h.  Please recompile
1452         userland, or commands like `fstat', `pkill', `ps', `top' and `w'
1453         will not behave correctly.
1454
1455         The API and ABI for hwpmc(4) have changed with the addition
1456         of sampling support.  Please recompile lib/libpmc(3) and
1457         usr.sbin/{pmcstat,pmccontrol}.
1458
1459 20050606:
1460         The OpenBSD dhclient was imported in place of the ISC dhclient
1461         and the network interface configuration scripts were updated
1462         accordingly.  If you use DHCP to configure your interfaces, you
1463         must now run devd.  Also, DNS updating was lost so you will need
1464         to find a workaround if you use this feature.
1465
1466         The '_dhcp' user was added to support the OpenBSD dhclient.  Be
1467         sure to run mergemaster -p (like you are supposed to do every time
1468         anyway).
1469
1470 20050605:
1471         if_bridge was added to the tree. This has changed struct ifnet.
1472         Please recompile userland and all network related modules.
1473
1474 20050603:
1475         The n_net of a struct netent was changed to an uint32_t, and
1476         1st argument of getnetbyaddr() was changed to an uint32_t, to
1477         conform to POSIX-2001.  These changes broke an ABI
1478         compatibility on 64 bit architecture.  With these changes,
1479         shlib major of libpcap was bumped.  You have to recompile
1480         userland programs that use getnetbyaddr(3), getnetbyname(3),
1481         getnetent(3) and/or libpcap on 64 bit architecture.
1482
1483 20050528:
1484         Kernel parsing of extra options on '#!' first lines of shell
1485         scripts has changed.  Lines with multiple options likely will
1486         fail after this date.  For full details, please see
1487                 http://people.freebsd.org/~gad/Updating-20050528.txt
1488
1489 20050503:
1490         The packet filter (pf) code has been updated to OpenBSD 3.7
1491         Please note the changed anchor syntax and the fact that
1492         authpf(8) now needs a mounted fdescfs(5) to function.
1493
1494 20050415:
1495         The NO_MIXED_MODE kernel option has been removed from the i386
1496         amd64 platforms as its use has been superceded by the new local
1497         APIC timer code.  Any kernel config files containing this option
1498         should be updated.
1499
1500 20050227:
1501         The on-disk format of LC_CTYPE files was changed to be machine
1502         independent.  Please make sure NOT to use NO_CLEAN buildworld
1503         when crossing this point. Crossing this point also requires
1504         recompile or reinstall of all locale depended packages.
1505
1506 20050225:
1507         The ifi_epoch member of struct if_data has been changed to
1508         contain the uptime at which the interface was created or the
1509         statistics zeroed rather then the wall clock time because
1510         wallclock time may go backwards.  This should have no impact
1511         unless an snmp implementation is using this value (I know of
1512         none at this point.)
1513
1514 20050224:
1515         The acpi_perf and acpi_throttle drivers are now part of the
1516         acpi(4) main module.  They are no longer built separately.
1517
1518 20050223:
1519         The layout of struct image_params has changed. You have to
1520         recompile all compatibility modules (linux, svr4, etc) for use
1521         with the new kernel.
1522
1523 20050223:
1524         The p4tcc driver has been merged into cpufreq(4).  This makes
1525         "options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
1526         compile in "device cpufreq" to restore this functionality.
1527
1528 20050220:
1529         The responsibility of recomputing the file system summary of
1530         a SoftUpdates-enabled dirty volume has been transferred to the
1531         background fsck.  A rebuild of fsck(8) utility is recommended
1532         if you have updated the kernel.
1533
1534         To get the old behavior (recompute file system summary at mount
1535         time), you can set vfs.ffs.compute_summary_at_mount=1 before
1536         mounting the new volume.
1537
1538 20050206:
1539         The cpufreq import is complete.  As part of this, the sysctls for
1540         acpi(4) throttling have been removed.  The power_profile script
1541         has been updated, so you can use performance/economy_cpu_freq in
1542         rc.conf(5) to set AC on/offline cpu frequencies.
1543
1544 20050206:
1545         NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
1546         requires recompiling libnetgraph and userland netgraph utilities.
1547
1548 20050114:
1549         Support for abbreviated forms of a number of ipfw options is
1550         now deprecated.  Warnings are printed to stderr indicating the
1551         correct full form when a match occurs.  Some abbreviations may
1552         be supported at a later date based on user feedback.  To be
1553         considered for support, abbreviations must be in use prior to
1554         this commit and unlikely to be confused with current key words.
1555
1556 20041221:
1557         By a popular demand, a lot of NOFOO options were renamed
1558         to NO_FOO (see bsd.compat.mk for a full list).  The old
1559         spellings are still supported, but will cause annoying
1560         warnings on stderr.  Make sure you upgrade properly (see
1561         the COMMON ITEMS: section later in this file).
1562
1563 20041219:
1564         Auto-loading of ancillary wlan modules such as wlan_wep has
1565         been temporarily disabled; you need to statically configure
1566         the modules you need into your kernel or explicitly load them
1567         prior to use.  Specifically, if you intend to use WEP encryption
1568         with an 802.11 device load/configure wlan_wep; if you want to
1569         use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
1570         and wlan_xauth as required.
1571
1572 20041213:
1573         The behaviour of ppp(8) has changed slightly.  If lqr is enabled
1574         (``enable lqr''), older versions would revert to LCP ECHO mode on
1575         negotiation failure.  Now, ``enable echo'' is required for this
1576         behaviour.  The ppp version number has been bumped to 3.4.2 to
1577         reflect the change.
1578
1579 20041201:
1580         The wlan support has been updated to split the crypto support
1581         into separate modules.  For static WEP you must configure the
1582         wlan_wep module in your system or build and install the module
1583         in place where it can be loaded (the kernel will auto-load
1584         the module when a wep key is configured).
1585
1586 20041201:
1587         The ath driver has been updated to split the tx rate control
1588         algorithm into a separate module.  You need to include either
1589         ath_rate_onoe or ath_rate_amrr when configuring the kernel.
1590
1591 20041116:
1592         Support for systems with an 80386 CPU has been removed.  Please
1593         use FreeBSD 5.x or earlier on systems with an 80386.
1594
1595 20041110:
1596         We have had a hack which would mount the root filesystem
1597         R/W if the device were named 'md*'.  As part of the vnode
1598         work I'm doing I have had to remove this hack.  People
1599         building systems which use preloaded MD root filesystems
1600         may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
1601         their /etc/rc scripts.
1602
1603 20041104:
1604         FreeBSD 5.3 shipped here.
1605
1606 20041102:
1607         The size of struct tcpcb has changed again due to the removal
1608         of RFC1644 T/TCP.  You have to recompile userland programs that
1609         read kmem for tcp sockets directly (netstat, sockstat, etc.)
1610
1611 20041022:
1612         The size of struct tcpcb has changed.  You have to recompile
1613         userland programs that read kmem for tcp sockets directly
1614         (netstat, sockstat, etc.)
1615
1616 20041016:
1617         RELENG_5 branched here.  For older entries, please see updating
1618         in the RELENG_5 branch.
1619
1620 COMMON ITEMS:
1621
1622         General Notes
1623         -------------
1624         Avoid using make -j when upgrading.  From time to time in the
1625         past there have been problems using -j with buildworld and/or
1626         installworld.  This is especially true when upgrading between
1627         "distant" versions (eg one that cross a major release boundary
1628         or several minor releases, or when several months have passed
1629         on the -current branch).
1630
1631         Sometimes, obscure build problems are the result of environment
1632         poisoning.  This can happen because the make utility reads its
1633         environment when searching for values for global variables.
1634         To run your build attempts in an "environmental clean room",
1635         prefix all make commands with 'env -i '.  See the env(1) manual
1636         page for more details.
1637
1638         When upgrading from one major version to another it is generally
1639         best to upgrade to the latest code in the currently installed branch
1640         first, then do an upgrade to the new branch. This is the best-tested
1641         upgrade path, and has the highest probability of being successful.
1642         Please try this approach before reporting problems with a major
1643         version upgrade.
1644
1645         ZFS notes
1646         ---------
1647         When upgrading the boot ZFS pool to a new version, always follow
1648         these two steps:
1649
1650         1.) recompile and reinstall the ZFS boot loader and boot block
1651         (this is part of "make buildworld" and "make installworld")
1652
1653         2.) update the ZFS boot block on your boot drive
1654
1655         The following example updates the ZFS boot block on the first
1656         partition (freebsd-boot) of a GPT partitioned drive ad0:
1657         "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
1658
1659         Non-boot pools do not need these updates.
1660
1661         To build a kernel
1662         -----------------
1663         If you are updating from a prior version of FreeBSD (even one just
1664         a few days old), you should follow this procedure.  It is the most
1665         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1666
1667         make kernel-toolchain
1668         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1669         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1670
1671         To test a kernel once
1672         ---------------------
1673         If you just want to boot a kernel once (because you are not sure
1674         if it works, or if you want to boot a known bad kernel to provide
1675         debugging information) run
1676         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1677         nextboot -k testkernel
1678
1679         To just build a kernel when you know that it won't mess you up
1680         --------------------------------------------------------------
1681         This assumes you are already running a 5.X system.  Replace
1682         ${arch} with the architecture of your machine (e.g. "i386",
1683         "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
1684
1685         cd src/sys/${arch}/conf
1686         config KERNEL_NAME_HERE
1687         cd ../compile/KERNEL_NAME_HERE
1688         make depend
1689         make
1690         make install
1691
1692         If this fails, go to the "To build a kernel" section.
1693
1694         To rebuild everything and install it on the current system.
1695         -----------------------------------------------------------
1696         # Note: sometimes if you are running current you gotta do more than
1697         # is listed here if you are upgrading from a really old current.
1698
1699         <make sure you have good level 0 dumps>
1700         make buildworld
1701         make kernel KERNCONF=YOUR_KERNEL_HERE
1702                                                         [1]
1703         <reboot in single user>                         [3]
1704         mergemaster -p                                  [5]
1705         make installworld
1706         make delete-old
1707         mergemaster                                     [4]
1708         <reboot>
1709
1710
1711         To cross-install current onto a separate partition
1712         --------------------------------------------------
1713         # In this approach we use a separate partition to hold
1714         # current's root, 'usr', and 'var' directories.   A partition
1715         # holding "/", "/usr" and "/var" should be about 2GB in
1716         # size.
1717
1718         <make sure you have good level 0 dumps>
1719         <boot into -stable>
1720         make buildworld
1721         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1722         <maybe newfs current's root partition>
1723         <mount current's root partition on directory ${CURRENT_ROOT}>
1724         make installworld DESTDIR=${CURRENT_ROOT}
1725         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1726         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1727         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
1728         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1729         <reboot into current>
1730         <do a "native" rebuild/install as described in the previous section>
1731         <maybe install compatibility libraries from ports/misc/compat*>
1732         <reboot>
1733
1734
1735         To upgrade in-place from 5.x-stable to current
1736         ----------------------------------------------
1737         <make sure you have good level 0 dumps>
1738         make buildworld                                 [9]
1739         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
1740                                                         [1]
1741         <reboot in single user>                         [3]
1742         mergemaster -p                                  [5]
1743         make installworld
1744         make delete-old
1745         mergemaster -i                                  [4]
1746         <reboot>
1747
1748         Make sure that you've read the UPDATING file to understand the
1749         tweaks to various things you need.  At this point in the life
1750         cycle of current, things change often and you are on your own
1751         to cope.  The defaults can also change, so please read ALL of
1752         the UPDATING entries.
1753
1754         Also, if you are tracking -current, you must be subscribed to
1755         freebsd-current@freebsd.org.  Make sure that before you update
1756         your sources that you have read and understood all the recent
1757         messages there.  If in doubt, please track -stable which has
1758         much fewer pitfalls.
1759
1760         [1] If you have third party modules, such as vmware, you
1761         should disable them at this point so they don't crash your
1762         system on reboot.
1763
1764         [3] From the bootblocks, boot -s, and then do
1765                 fsck -p
1766                 mount -u /
1767                 mount -a
1768                 cd src
1769                 adjkerntz -i            # if CMOS is wall time
1770         Also, when doing a major release upgrade, it is required that
1771         you boot into single user mode to do the installworld.
1772
1773         [4] Note: This step is non-optional.  Failure to do this step
1774         can result in a significant reduction in the functionality of the
1775         system.  Attempting to do it by hand is not recommended and those
1776         that pursue this avenue should read this file carefully, as well
1777         as the archives of freebsd-current and freebsd-hackers mailing lists
1778         for potential gotchas.
1779
1780         [5] Usually this step is a noop.  However, from time to time
1781         you may need to do this if you get unknown user in the following
1782         step.  It never hurts to do it all the time.  You may need to
1783         install a new mergemaster (cd src/usr.sbin/mergemaster && make
1784         install) after the buildworld before this step if you last updated
1785         from current before 20020224 or from -stable before 20020408.
1786
1787         [8] In order to have a kernel that can run the 4.x binaries
1788         needed to do an installworld, you must include the COMPAT_FREEBSD4
1789         option in your kernel.  Failure to do so may leave you with a system
1790         that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
1791         is required to run the 5.x binaries on more recent kernels.
1792
1793         Make sure that you merge any new devices from GENERIC since the
1794         last time you updated your kernel config file.
1795
1796         [9] When checking out sources, you must include the -P flag to have
1797         cvs prune empty directories.
1798
1799         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1800         "?=" instead of the "=" assignment operator, so that buildworld can
1801         override the CPUTYPE if it needs to.
1802
1803         MAKEOBJDIRPREFIX must be defined in an environment variable, and
1804         not on the command line, or in /etc/make.conf.  buildworld will
1805         warn if it is improperly defined.
1806 FORMAT:
1807
1808 This file contains a list, in reverse chronological order, of major
1809 breakages in tracking -current.  Not all things will be listed here,
1810 and it only starts on October 16, 2004.  Updating files can found in
1811 previous releases if your system is older than this.
1812
1813 Copyright information:
1814
1815 Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
1816
1817 Redistribution, publication, translation and use, with or without
1818 modification, in full or in part, in any form or format of this
1819 document are permitted without further permission from the author.
1820
1821 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1822 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1823 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1824 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1825 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1826 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1827 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1828 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1829 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1830 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1831 POSSIBILITY OF SUCH DAMAGE.
1832
1833 If you find this document useful, and you want to, you may buy the
1834 author a beer.
1835
1836 Contact Warner Losh if you have any questions about your use of
1837 this document.
1838
1839 $FreeBSD$