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