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