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