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