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