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