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