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