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