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