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