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