]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
This commit was generated by cvs2svn to compensate for changes in r172468,
[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 7.x IS SLOW:
12         FreeBSD 7.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.
23
24 20070930:
25         The PCI code has been made aware of PCI domains. This means that
26         the location strings as used by pciconf(8) etc are now in the
27         following format: pci<domain>:<bus>:<device>[:<function>]. It
28         also means that consumers of <sys/pciio.h> potentially need to
29         be recompiled; this includes the hal and xorg-server ports.
30
31 20070928:
32         The caching daemon (cached) was renamed to nscd. nscd.conf
33         configuration file should be used instead of cached.conf and
34         nscd_enable, nscd_pidfile and nscd_flags options should be used
35         instead of cached_enable, cached_pidfile and cached_flags in
36         rc.conf.
37
38 20070704:
39         The new IPsec code is now compiled in using the IPSEC option.  The
40         IPSEC option now requires "device crypto" be defined in your kernel
41         configuration.  The FAST_IPSEC kernel option is now deprecated.
42
43 20070702:
44         The packet filter (pf) code has been updated to OpenBSD 4.1 Please
45         note the changed syntax - keep state is now on by default.  Also
46         note the fact that ftp-proxy(8) has been changed from bottom up and
47         has been moved from libexec to usr/sbin.  Changes in the ALTQ
48         handling also affect users of IPFW's ALTQ capabilities.
49
50 20070701:
51         Remove KAME IPsec in favor of FAST_IPSEC, which is now the
52         only IPsec supported by FreeBSD.  The new IPsec stack
53         supports both IPv4 and IPv6. The kernel option will change
54         after the code changes have settled in.  For now the kernel
55         option IPSEC is deprecated and FAST_IPSEC is the only option, that
56         will change after some settling time.
57
58 20070701:
59         The wicontrol(8) utility has been removed from the base system. wi(4)
60         cards should be configured using ifconfig(8), see the man page for more
61         information.
62
63 20070612:
64         The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver
65         instead of the nve(4) driver. Please update your configuration
66         accordingly.
67
68 20070612:
69         By default, /etc/rc.d/sendmail no longer rebuilds the aliases
70         database if it is missing or older than the aliases file.  If
71         desired, set the new rc.conf option sendmail_rebuild_aliases
72         to "YES" to restore that functionality.
73
74 20070612:
75         The IPv4 multicast socket code has been considerably modified, and
76         moved to the file sys/netinet/in_mcast.c. Initial support for the
77         RFC 3678 Source-Specific Multicast Socket API has been added to
78         the IPv4 network stack.
79
80         Strict multicast and broadcast reception is now the default for
81         UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable
82         has now been removed.
83
84         The RFC 1724 hack for interface selection has been removed; the use
85         of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has
86         been added to replace it. Consumers such as routed will soon be
87         updated to reflect this.
88
89         These changes affect users who are running routed(8) or rdisc(8)
90         from the FreeBSD base system on point-to-point or unnumbered
91         interfaces.
92
93 20070610:
94         The net80211 layer has changed significantly and all wireless
95         drivers that depend on it need to be recompiled.  Further these
96         changes require that any program that interacts with the wireless
97         support in the kernel be recompiled; this includes: ifconfig,
98         wpa_supplicant, hostapd, and wlanstats.  Users must also, for
99         the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules
100         if they use modules for wireless support.  These modules implement
101         scanning support for station and ap modes, respectively.  Failure
102         to load the appropriate module before marking a wireless interface
103         up will result in a message to the console and the device not
104         operating properly.
105
106 20070610:
107         The pam_nologin(8) module ceases to provide an authentication
108         function and starts providing an account management function.
109         Consequent changes to /etc/pam.d should be brought in using
110         mergemaster(8).  Third-party files in /usr/local/etc/pam.d may
111         need manual editing as follows.  Locate this line (or similar):
112
113                 auth    required        pam_nologin.so  no_warn
114
115         and change it according to this example:
116
117                 account required        pam_nologin.so  no_warn
118
119         That is, the first word needs to be changed from "auth" to
120         "account".  The new line can be moved to the account section
121         within the file for clarity.  Not updating pam.conf(5) files
122         will result in nologin(5) ignored by the respective services.
123
124 20070529:
125         The ether_ioctl() function has been synchronized with ioctl(2)
126         and ifnet.if_ioctl.  Due to that, the size of one of its arguments
127         has changed on 64-bit architectures.  All kernel modules using
128         ether_ioctl() need to be rebuilt on such architectures.
129
130 20070516:
131         Improved INCLUDE_CONFIG_FILE support has been introduced to the
132         config(8) utility. In order to take advantage of this new
133         functionality, you are expected to recompile and install
134         src/usr.sbin/config. If you don't rebuild config(8), and your
135         kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel
136         build will be broken because of a missing "kernconfstring"
137         symbol.
138
139 20070513:
140         Symbol versioning is enabled by default.  To disable it, use
141         option WITHOUT_SYMVER.  It is not advisable to attempt to
142         disable symbol versioning once it is enabled; your installworld
143         will break because a symbol version-less libc will get installed
144         before the install tools.  As a result, the old install tools,
145         which previously had symbol dependencies to FBSD_1.0, will fail
146         because the freshly installed libc will not have them.
147
148         The default threading library has been changed to libthr.  If
149         you wish to have libpthread as your default, use option
150         DEFAULT_THREAD_LIB=libpthread for the buildworld.
151
152 20070423:
153         The ABI breakage in sendmail(8)'s libmilter has been repaired
154         so it is no longer necessary to recompile mail filters (aka,
155         milters).  If you recompiled mail filters after the 20070408
156         note, it is not necessary to recompile them again.
157
158 20070417:
159         The new trunk(4) driver has been renamed to lagg(4) as it better
160         reflects its purpose. ifconfig will need to be recompiled.
161
162 20070408:
163         sendmail(8) has been updated to version 8.14.1.  Mail filters
164         (aka, milters) compiled against the libmilter included in the
165         base operating system should be recompiled.
166
167 20070302:
168         Firmwares for ipw(4) and iwi(4) are now included in the base tree.
169         In order to use them one must agree to the respective LICENSE in
170         share/doc/legal and define legal.intel_<name>.license_ack=1 via
171         loader.conf(5) or kenv(1).  Make sure to deinstall the now
172         deprecated modules from the respective firmware ports.
173
174 20070228:
175         The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
176         were removed from FreeBSD's libc. These originally came from INRIA
177         IPv6. Nothing in FreeBSD ever used them. They may be regarded as
178         deprecated in previous releases.
179         The AF_LINK support for getnameinfo(3) was merged from NetBSD to
180         replace it as a more portable (and re-entrant) API.
181
182 20070224:
183         To support interrupt filtering a modification to the newbus API 
184         has occurred, ABI was broken and __FreeBSD_version was bumped
185         to 700031. Please make sure that your kernel and modules are in 
186         sync. For more info:
187         http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
188
189 20070224:
190         The IPv6 multicast forwarding code may now be loaded into GENERIC
191         kernels by loading the ip_mroute.ko module. This is built into the
192         module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are
193         set; see src.conf(5) for more information.
194
195 20070214:
196         The output of netstat -r has changed. Without -n, we now only
197         print a "network name" without the prefix length if the network
198         address and mask exactly match a Class A/B/C network, and an entry
199         exists in the nsswitch "networks" map.
200         With -n, we print the full unabbreviated CIDR network prefix in
201         the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default".
202         This change is in preparation for changes such as equal-cost
203         multipath, and to more generally assist operational deployment
204         of FreeBSD as a modern IPv4 router.
205
206 20070210:
207         PIM has been turned on by default in the IPv4 multicast
208         routing code. The kernel option 'PIM' has now been removed.
209         PIM is now built by default if option 'MROUTING' is specified.
210         It may now be loaded into GENERIC kernels by loading the
211         ip_mroute.ko module.
212
213 20070207:
214         Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing
215         has been removed. Its functionality may be achieved by explicitly
216         configuring gif(4) interfaces and using the 'phyint' keyword in
217         mrouted.conf.
218         XORP does not support source-routed IPv4 multicast tunnels nor the
219         integrated IPIP tunneling, therefore it is not affected by this
220         change. The __FreeBSD_version macro has been bumped to 700030.
221
222 20061221:
223         Support for PCI Message Signalled Interrupts has been
224         re-enabled in the bge driver, only for those chips which are
225         believed to support it properly.  If there are any problems,
226         MSI can be disabled completely by setting the
227         'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0
228         in the loader.
229
230 20061214:
231         Support for PCI Message Signalled Interrupts has been
232         disabled again in the bge driver.  Many revisions of the
233         hardware fail to support it properly.  Support can be
234         re-enabled by removing the #define of BGE_DISABLE_MSI in
235         "src/sys/dev/bge/if_bge.c".
236
237 20061214:
238         Support for PCI Message Signalled Interrupts has been added
239         to the bge driver.  If there are any problems, MSI can be
240         disabled completely by setting the 'hw.pci.enable_msi' and
241         'hw.pci.enable_msix' tunables to 0 in the loader.
242
243 20061205:
244         The removal of several facets of the experimental Threading 
245         system from the kernel means that the proc and thread structures 
246         have changed quite a bit. I suggest all kernel modules that might
247         reference these structures be recompiled.. Especially the
248         linux module.
249
250 20061126:
251         Sound infrastructure has been updated with various fixes and
252         improvements. Most of the changes are pretty much transparent,
253         with exceptions of followings:
254         1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been
255            moved to their own dev sysctl nodes, for example:
256                 hw.snd.pcm0.vchans -> dev.pcm.0.vchans
257         2) /dev/dspr%d.%d has been deprecated. Each channel now has its
258            own chardev in the form of "dsp%d.<function>%d", where <function>
259            is p = playback, r = record and v = virtual, respectively. Users
260            are encouraged to use these devs instead of (old) "/dev/dsp%d.%d".
261            This does not affect those who are using "/dev/dsp".
262
263 20061122:
264         The following binaries have been disconnected from the build:
265         mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs,
266         and mount_std.  The functionality of these programs has been
267         moved into the mount program.  For example, to mount a devfs
268         filesystem, instead of using mount_devfs, use: "mount -t devfs".
269         This does not affect entries in /etc/fstab, since entries in
270         /etc/fstab are always processed with "mount -t fstype".
271
272 20061113:
273         Support for PCI Message Signalled Interrupts on i386 and amd64
274         has been added to the kernel and various drivers will soon be
275         updated to use MSI when it is available.  If there are any problems,
276         MSI can be disabled completely by setting the 'hw.pci.enable_msi'
277         and 'hw.pci.enable_msix' tunables to 0 in the loader.
278
279 20061110:
280         The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
281         The lockmgr object layout has been changed as a result of having
282         a lock_object embedded in it. As a consequence all file system
283         kernel modules must be re-compiled. The mutex profiling man page 
284         has not yet been updated to reflect this change.
285
286 20061026:
287         KSE in the kernel has now been made optional and turned on by
288         default. Use 'nooption KSE' in your kernel config to turn it
289         off. All kernel modules *must* be recompiled after this change.
290         There-after, modules from a KSE kernel should be compatible with
291         modules from a NOKSE kernel due to the temporary padding fields
292         added to 'struct proc'.
293
294 20060929:
295         mrouted and its utilities have been removed from the base system.
296
297 20060927:
298         Some ioctl(2) command codes have changed.  Full backward ABI
299         compatibility is provided if the "options COMPAT_FREEBSD6" is
300         present in the kernel configuration file.  Make sure to add
301         this option to your kernel config file, or recompile X.Org
302         and the rest of ports; otherwise they may refuse to work.
303
304 20060924:
305         tcpslice has been removed from the base system.
306
307 20060913:
308         The sizes of struct tcpcb (and struct xtcpcb) have changed due to
309         the rewrite of TCP syncookies.  Tools like netstat, sockstat, and
310         systat needs to be rebuilt.
311
312 20060903:
313         libpcap updated to v0.9.4 and tcpdump to v3.9.4
314
315 20060816:
316         The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour
317         for IPFIREWALL_FORWARD is now as it was before when it was first
318         committed and for years after. The behaviour is now ON.
319
320 20060725:
321         enigma(1)/crypt(1) utility has been changed on 64 bit architectures.
322         Now it can decrypt files created from different architectures.
323         Unfortunately, it is no longer able to decrypt a cipher text
324         generated with an older version on 64 bit architectures.
325         If you have such a file, you need old utility to decrypt it.
326
327 20060709:
328         The interface version of the i4b kernel part has changed. So
329         after updating the kernel sources and compiling a new kernel,
330         the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
331         be rebuilt, and vice versa.
332  
333 20060627:
334         The XBOX kernel now defaults to the nfe(4) driver instead of
335         the nve(4) driver. Please update your configuration
336         accordingly.
337
338 20060514:
339         The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx
340         PCnet family of NICs has been removed. The new le(4) driver serves
341         as an equivalent but cross-platform replacement with the pcn(4)
342         driver still providing performance-optimized support for the subset
343         of AMD Am79C971 PCnet-FAST and greater chips as before.
344
345 20060511:
346         The machdep.* sysctls and the adjkerntz utility have been
347         modified a bit.  The new adjkerntz utility uses the new
348         sysctl names and sysctlbyname() calls, so it may be impossible
349         to run an old /sbin/adjkerntz utility in single-user mode
350         with a new kernel.  Replace the `adjkerntz -i' step before
351         `make installworld' with:
352
353             /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i
354
355         and proceed as usual with the rest of the installworld-stage
356         steps.  Otherwise, you risk installing binaries with their
357         timestamp set several hours in the future, especially if
358         you are running with local time set to GMT+X hours.
359
360 20060412:
361         The ip6fw utility has been removed.  The behavior provided by
362         ip6fw has been in ipfw2 for a good while and the rc.d scripts
363         have been updated to deal with it.  There are some rules that
364         might not migrate cleanly.  Use rc.firewall6 as a template to
365         rewrite rules.
366
367 20060428:
368         The puc(4) driver has been overhauled. The ebus(4) and sbus(4)
369         attachments have been removed. Make sure to configure scc(4)
370         on sparc64. Note also that by default puc(4) will use uart(4)
371         and not sio(4) for serial ports because interrupt handling has
372         been optimized for multi-port serial cards and only uart(4)
373         implements the interface to support it.
374
375 20060330:
376         The scc(4) driver replaces puc(4) for Serial Communications
377         Controllers (SCCs) like the Siemens SAB82532 and the Zilog
378         Z8530. On sparc64, it is advised to add scc(4) to the kernel
379         configuration to make sure that the serial ports remain
380         functional.
381
382 20060317:
383         Most world/kernel related NO_* build options changed names.
384         New knobs have common prefixes WITHOUT_*/WITH_* (modelled
385         after FreeBSD ports) and should be set in /etc/src.conf
386         (the src.conf(5) manpage is provided).  Full backwards
387         compatibility is maintained for the time being though it's
388         highly recommended to start moving old options out of the
389         system-wide /etc/make.conf file into the new /etc/src.conf
390         while also properly renaming them.  More conversions will
391         likely follow.  Posting to current@:
392
393         http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
394
395 20060305:
396         The NETSMBCRYPTO kernel option has been retired because its
397         functionality is always included in NETSMB and smbfs.ko now.
398
399 20060303:
400         The TDFX_LINUX kernel option was retired and replaced by the
401         tdfx_linux device.  The latter can be loaded as the 3dfx_linux.ko
402         kernel module.  Loading it alone should suffice to get 3dfx support
403         for Linux apps because it will pull in 3dfx.ko and linux.ko through
404         its dependencies.
405
406 20060204:
407         The 'audit' group was added to support the new auditing functionality
408         in the base system.  Be sure to follow the directions for updating,
409         including the requirement to run mergemaster -p.
410
411 20060201:
412         The kernel ABI to file system modules was changed on i386.
413         Please make sure that your kernel and modules are in sync.
414         
415 20060118:
416         This actually occured some time ago, but installing the kernel
417         now also installs a bunch of symbol files for the kernel modules.
418         This increases the size of /boot/kernel to about 67Mbytes. You
419         will need twice this if you will eventually back this up to kernel.old
420         on your next install.
421         If you have a shortage of room in your root partition, you should add
422         -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes"
423         to your /etc/make.conf.
424
425 20060113:
426         libc's malloc implementation has been replaced.  This change has the
427         potential to uncover application bugs that previously went unnoticed.
428         See the malloc(3) manual page for more details.
429
430 20060112:
431         The generic netgraph(4) cookie has been changed. If you upgrade
432         kernel passing this point, you also need to upgrade userland
433         and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4.
434
435 20060106:
436         si(4)'s device files now contain the unit number.
437         Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f].
438
439 20060106:
440         The kernel ABI was mostly destroyed due to a change in the size
441         of struct lock_object which is nested in other structures such
442         as mutexes which are nested in all sorts of other structures.
443         Make sure your kernel and modules are in sync.
444
445 20051231:
446         The page coloring algorithm in the VM subsystem was converted
447         from tuning with kernel options to autotuning. Please remove
448         any PQ_* option except PQ_NOOPT from your kernel config.
449
450 20051211:
451         The net80211-related tools in the tools/tools/ath directory
452         have been moved to tools/tools/net80211 and renamed with a
453         "wlan" prefix.  Scripts that use them should be adjusted
454         accordingly.
455
456 20051202:
457         Scripts in the local_startup directories (as defined in
458         /etc/defaults/rc.conf) that have the new rc.d semantics will
459         now be run as part of the base system rcorder. If there are
460         errors or problems with one of these local scripts, it could
461         cause boot problems. If you encounter such problems, boot in
462         single user mode, remove that script from the */rc.d directory.
463         Please report the problem to the port's maintainer, and the
464         freebsd-ports@freebsd.org mailing list.
465
466 20051129:
467         The nodev mount option was deprecated in RELENG_6 (where it
468         was a no-op), and is now unsupported.  If you have nodev or dev listed
469         in /etc/fstab, remove it, otherwise it will result in a mount error.
470
471 20051129:
472         ABI between ipfw(4) and ipfw(8) has been changed. You need
473         to rebuild ipfw(8) when rebuilding kernel.
474
475 20051108:
476         rp(4)'s device files now contain the unit number.
477         Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f].
478
479 20051029:
480         /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp.
481         Its /etc/rc.conf.d configuration file has been `ppp' from
482         the beginning, and hence there is no need to touch it.
483
484 20051014:
485         Now most modules get their build-time options from the kernel
486         configuration file.  A few modules still have fixed options
487         due to their non-conformant implementation, but they will be
488         corrected eventually.  You may need to review the options of
489         the modules in use, explicitly specify the non-default options
490         in the kernel configuration file, and rebuild the kernel and
491         modules afterwards.
492
493 20051001:
494         kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8)
495         to turn polling(4) on your interfaces.
496
497 20050927:
498         The old bridge(4) implementation was retired.  The new
499         if_bridge(4) serves as a full functional replacement.
500
501 20050722:
502         The ai_addrlen of a struct addrinfo was changed to a socklen_t
503         to conform to POSIX-2001.  This change broke an ABI
504         compatibility on 64 bit architecture.  You have to recompile
505         userland programs that use getaddrinfo(3) on 64 bit
506         architecture.
507
508 20050711:
509         RELENG_6 branched here.
510
511 20050629:
512         The pccard_ifconfig rc.conf variable has been removed and a new
513         variable, ifconfig_DEFAULT has been introduced.  Unlike
514         pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that
515         do not have ifconfig_ifn entries rather than just those in
516         removable_interfaces.
517
518 20050616:
519         Some previous versions of PAM have permitted the use of
520         non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring
521         to third party PAM modules in /usr/local/lib.  A change has been
522         made to require the use of absolute paths in order to avoid
523         ambiguity and dependence on library path configuration, which may
524         affect existing configurations.
525
526 20050610:
527         Major changes to network interface API.  All drivers must be
528         recompiled.  Drivers not in the base system will need to be
529         updated to the new APIs.
530
531 20050609:
532         Changes were made to kinfo_proc in sys/user.h.  Please recompile
533         userland, or commands like `fstat', `pkill', `ps', `top' and `w'
534         will not behave correctly.
535
536         The API and ABI for hwpmc(4) have changed with the addition
537         of sampling support.  Please recompile lib/libpmc(3) and
538         usr.sbin/{pmcstat,pmccontrol}.
539
540 20050606:
541         The OpenBSD dhclient was imported in place of the ISC dhclient
542         and the network interface configuration scripts were updated
543         accordingly.  If you use DHCP to configure your interfaces, you
544         must now run devd.  Also, DNS updating was lost so you will need
545         to find a workaround if you use this feature.
546
547         The '_dhcp' user was added to support the OpenBSD dhclient.  Be
548         sure to run mergemaster -p (like you are supposed to do every time
549         anyway).
550
551 20050605:
552         if_bridge was added to the tree. This has changed struct ifnet.
553         Please recompile userland and all network related modules.
554
555 20050603:
556         The n_net of a struct netent was changed to an uint32_t, and
557         1st argument of getnetbyaddr() was changed to an uint32_t, to
558         conform to POSIX-2001.  These changes broke an ABI
559         compatibility on 64 bit architecture.  With these changes,
560         shlib major of libpcap was bumped.  You have to recompile
561         userland programs that use getnetbyaddr(3), getnetbyname(3),
562         getnetent(3) and/or libpcap on 64 bit architecture.
563
564 20050528:
565         Kernel parsing of extra options on '#!' first lines of shell
566         scripts has changed.  Lines with multiple options likely will
567         fail after this date.  For full details, please see
568                 http://people.freebsd.org/~gad/Updating-20050528.txt
569
570 20050503:
571         The packet filter (pf) code has been updated to OpenBSD 3.7
572         Please note the changed anchor syntax and the fact that
573         authpf(8) now needs a mounted fdescfs(5) to function.
574
575 20050415:
576         The NO_MIXED_MODE kernel option has been removed from the i386
577         amd64 platforms as its use has been superceded by the new local
578         APIC timer code.  Any kernel config files containing this option
579         should be updated.
580
581 20050227:
582         The on-disk format of LC_CTYPE files was changed to be machine
583         independent.  Please make sure NOT to use NO_CLEAN buildworld
584         when crossing this point. Crossing this point also requires
585         recompile or reinstall of all locale depended packages.
586
587 20050225:
588         The ifi_epoch member of struct if_data has been changed to
589         contain the uptime at which the interface was created or the
590         statistics zeroed rather then the wall clock time because
591         wallclock time may go backwards.  This should have no impact
592         unless an snmp implementation is using this value (I know of
593         none at this point.)
594
595 20050224:
596         The acpi_perf and acpi_throttle drivers are now part of the
597         acpi(4) main module.  They are no longer built separately.
598
599 20050223:
600         The layout of struct image_params has changed. You have to
601         recompile all compatibility modules (linux, svr4, etc) for use
602         with the new kernel.
603
604 20050223:
605         The p4tcc driver has been merged into cpufreq(4).  This makes
606         "options CPU_ENABLE_TCC" obsolete.  Please load cpufreq.ko or
607         compile in "device cpufreq" to restore this functionality.
608
609 20050220:
610         The responsibility of recomputing the file system summary of
611         a SoftUpdates-enabled dirty volume has been transferred to the
612         background fsck.  A rebuild of fsck(8) utility is recommended
613         if you have updated the kernel.
614
615         To get the old behavior (recompute file system summary at mount
616         time), you can set vfs.ffs.compute_summary_at_mount=1 before
617         mounting the new volume.
618
619 20050206:
620         The cpufreq import is complete.  As part of this, the sysctls for
621         acpi(4) throttling have been removed.  The power_profile script
622         has been updated, so you can use performance/economy_cpu_freq in
623         rc.conf(5) to set AC on/offline cpu frequencies.
624
625 20050206:
626         NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko)
627         requires recompiling libnetgraph and userland netgraph utilities.
628
629 20050114:
630         Support for abbreviated forms of a number of ipfw options is
631         now deprecated.  Warnings are printed to stderr indicating the
632         correct full form when a match occurs.  Some abbreviations may
633         be supported at a later date based on user feedback.  To be
634         considered for support, abbreviations must be in use prior to
635         this commit and unlikely to be confused with current key words.
636
637 20041221:
638         By a popular demand, a lot of NOFOO options were renamed
639         to NO_FOO (see bsd.compat.mk for a full list).  The old
640         spellings are still supported, but will cause annoying
641         warnings on stderr.  Make sure you upgrade properly (see
642         the COMMON ITEMS: section later in this file).
643
644 20041219:
645         Auto-loading of ancillary wlan modules such as wlan_wep has
646         been temporarily disabled; you need to statically configure
647         the modules you need into your kernel or explicitly load them
648         prior to use.  Specifically, if you intend to use WEP encryption
649         with an 802.11 device load/configure wlan_wep; if you want to
650         use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp,
651         and wlan_xauth as required.
652
653 20041213:
654         The behaviour of ppp(8) has changed slightly.  If lqr is enabled
655         (``enable lqr''), older versions would revert to LCP ECHO mode on
656         negotiation failure.  Now, ``enable echo'' is required for this
657         behaviour.  The ppp version number has been bumped to 3.4.2 to
658         reflect the change.
659
660 20041201:
661         The wlan support has been updated to split the crypto support
662         into separate modules.  For static WEP you must configure the
663         wlan_wep module in your system or build and install the module
664         in place where it can be loaded (the kernel will auto-load
665         the module when a wep key is configured).
666
667 20041201:
668         The ath driver has been updated to split the tx rate control
669         algorithm into a separate module.  You need to include either
670         ath_rate_onoe or ath_rate_amrr when configuring the kernel.
671
672 20041116:
673         Support for systems with an 80386 CPU has been removed.  Please
674         use FreeBSD 5.x or earlier on systems with an 80386.
675
676 20041110:
677         We have had a hack which would mount the root filesystem
678         R/W if the device were named 'md*'.  As part of the vnode
679         work I'm doing I have had to remove this hack.  People
680         building systems which use preloaded MD root filesystems
681         may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in
682         their /etc/rc scripts.
683
684 20041104:
685         FreeBSD 5.3 shipped here.
686
687 20041102:
688         The size of struct tcpcb has changed again due to the removal
689         of RFC1644 T/TCP.  You have to recompile userland programs that
690         read kmem for tcp sockets directly (netstat, sockstat, etc.)
691
692 20041022:
693         The size of struct tcpcb has changed.  You have to recompile
694         userland programs that read kmem for tcp sockets directly
695         (netstat, sockstat, etc.)
696
697 20041016:
698         RELENG_5 branched here.  For older entries, please see updating
699         in the RELENG_5 branch.
700
701 COMMON ITEMS:
702
703         General Notes
704         -------------
705         Avoid using make -j when upgrading.  From time to time in the
706         past there have been problems using -j with buildworld and/or
707         installworld.  This is especially true when upgrading between
708         "distant" versions (eg one that cross a major release boundary
709         or several minor releases, or when several months have passed
710         on the -current branch).
711
712         Sometimes, obscure build problems are the result of environment
713         poisoning.  This can happen because the make utility reads its
714         environment when searching for values for global variables.
715         To run your build attempts in an "environmental clean room",
716         prefix all make commands with 'env -i '.  See the env(1) manual
717         page for more details.
718
719         When upgrading from one major version to another it is generally
720         best to upgrade to the latest code in the currently installed branch
721         first, then do an upgrade to the new branch. This is the best-tested
722         upgrade path, and has the highest probability of being successful.
723         Please try this approach before reporting problems with a major
724         version upgrade.
725
726         To build a kernel
727         -----------------
728         If you are updating from a prior version of FreeBSD (even one just
729         a few days old), you should follow this procedure.  It is the most
730         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
731
732         make kernel-toolchain
733         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
734         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
735
736         To test a kernel once
737         ---------------------
738         If you just want to boot a kernel once (because you are not sure
739         if it works, or if you want to boot a known bad kernel to provide
740         debugging information) run
741         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
742         nextboot -k testkernel
743
744         To just build a kernel when you know that it won't mess you up
745         --------------------------------------------------------------
746         This assumes you are already running a 5.X system.  Replace
747         ${arch} with the architecture of your machine (e.g. "i386",
748         "alpha", "amd64", "ia64", "pc98", "sparc64", etc).
749
750         cd src/sys/${arch}/conf
751         config KERNEL_NAME_HERE
752         cd ../compile/KERNEL_NAME_HERE
753         make depend
754         make
755         make install
756
757         If this fails, go to the "To build a kernel" section.
758
759         To rebuild everything and install it on the current system.
760         -----------------------------------------------------------
761         # Note: sometimes if you are running current you gotta do more than
762         # is listed here if you are upgrading from a really old current.
763
764         <make sure you have good level 0 dumps>
765         make buildworld
766         make kernel KERNCONF=YOUR_KERNEL_HERE
767                                                         [1]
768         <reboot in single user>                         [3]
769         mergemaster -p                                  [5]
770         make installworld
771         make delete-old
772         mergemaster                                     [4]
773         <reboot>
774
775
776         To cross-install current onto a separate partition
777         --------------------------------------------------
778         # In this approach we use a separate partition to hold
779         # current's root, 'usr', and 'var' directories.   A partition
780         # holding "/", "/usr" and "/var" should be about 2GB in
781         # size.
782
783         <make sure you have good level 0 dumps>
784         <boot into -stable>
785         make buildworld
786         make buildkernel KERNCONF=YOUR_KERNEL_HERE
787         <maybe newfs current's root partition>
788         <mount current's root partition on directory ${CURRENT_ROOT}>
789         make installworld DESTDIR=${CURRENT_ROOT}
790         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
791         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
792         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
793         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
794         <reboot into current>
795         <do a "native" rebuild/install as described in the previous section>
796         <maybe install compatibility libraries from src/lib/compat>
797         <reboot>
798
799
800         To upgrade in-place from 5.x-stable to current
801         ----------------------------------------------
802         <make sure you have good level 0 dumps>
803         make buildworld                                 [9]
804         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
805                                                         [1]
806         <reboot in single user>                         [3]
807         mergemaster -p                                  [5]
808         make installworld
809         make delete-old
810         mergemaster -i                                  [4]
811         <reboot>
812
813         Make sure that you've read the UPDATING file to understand the
814         tweaks to various things you need.  At this point in the life
815         cycle of current, things change often and you are on your own
816         to cope.  The defaults can also change, so please read ALL of
817         the UPDATING entries.
818
819         Also, if you are tracking -current, you must be subscribed to
820         freebsd-current@freebsd.org.  Make sure that before you update
821         your sources that you have read and understood all the recent
822         messages there.  If in doubt, please track -stable which has
823         much fewer pitfalls.
824
825         [1] If you have third party modules, such as vmware, you
826         should disable them at this point so they don't crash your
827         system on reboot.
828
829         [3] From the bootblocks, boot -s, and then do
830                 fsck -p
831                 mount -u /
832                 mount -a
833                 cd src
834                 adjkerntz -i            # if CMOS is wall time
835         Also, when doing a major release upgrade, it is required that
836         you boot into single user mode to do the installworld.
837
838         [4] Note: This step is non-optional.  Failure to do this step
839         can result in a significant reduction in the functionality of the
840         system.  Attempting to do it by hand is not recommended and those
841         that pursue this avenue should read this file carefully, as well
842         as the archives of freebsd-current and freebsd-hackers mailing lists
843         for potential gotchas.
844
845         [5] Usually this step is a noop.  However, from time to time
846         you may need to do this if you get unknown user in the following
847         step.  It never hurts to do it all the time.  You may need to
848         install a new mergemaster (cd src/usr.sbin/mergemaster && make
849         install) after the buildworld before this step if you last updated
850         from current before 20020224 or from -stable before 20020408.
851
852         [8] In order to have a kernel that can run the 4.x binaries
853         needed to do an installworld, you must include the COMPAT_FREEBSD4
854         option in your kernel.  Failure to do so may leave you with a system
855         that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5
856         is required to run the 5.x binaries on more recent kernels.
857
858         Make sure that you merge any new devices from GENERIC since the
859         last time you updated your kernel config file.
860
861         [9] When checking out sources, you must include the -P flag to have
862         cvs prune empty directories.
863
864         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
865         "?=" instead of the "=" assignment operator, so that buildworld can
866         override the CPUTYPE if it needs to.
867
868         MAKEOBJDIRPREFIX must be defined in an environment variable, and
869         not on the command line, or in /etc/make.conf.  buildworld will
870         warn if it is improperly defined.
871 FORMAT:
872
873 This file contains a list, in reverse chronological order, of major
874 breakages in tracking -current.  Not all things will be listed here,
875 and it only starts on October 16, 2004.  Updating files can found in
876 previous releases if your system is older than this.
877
878 Copyright information:
879
880 Copyright 1998-2005 M. Warner Losh.  All Rights Reserved.
881
882 Redistribution, publication, translation and use, with or without
883 modification, in full or in part, in any form or format of this
884 document are permitted without further permission from the author.
885
886 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
887 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
888 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
889 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
890 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
891 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
892 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
893 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
894 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
895 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
896 POSSIBILITY OF SUCH DAMAGE.
897
898 If you find this document useful, and you want to, you may buy the
899 author a beer.
900
901 Contact Warner Losh if you have any questions about your use of
902 this document.
903
904 $FreeBSD$