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