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