]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - UPDATING
Fix multiple OpenSSL vulnerabilities:
[FreeBSD/releng/10.0.git] / UPDATING
1 Updating Information for FreeBSD current users
2
3 This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>.
4 See end of file for further details.  For commonly done items, please see the
5 COMMON ITEMS: section later in the file.  These instructions assume that you
6 basically know what you are doing.  If not, then please consult the FreeBSD
7 handbook:
8
9     http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
10
11 Items affecting the ports and packages system can be found in
12 /usr/ports/UPDATING.  Please read that file before running portupgrade.
13
14 NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping
15 from older versions of FreeBSD, try WITHOUT_CLANG to bootstrap to the tip of
16 stable/10, and then rebuild without this option. The bootstrap process from
17 older version of current is a bit fragile.
18
19 20140909:       p8      FreeBSD-SA-14:18.openssl
20         Fix OpenSSL multiple vulnerabilities. [SA-14:18]
21
22 20140708:       p7      FreeBSD-SA-14:17.kmem
23         Fix kernel memory disclosure in control messages and SCTP
24         notifications. [SA-14:17]
25
26 20140624:       p6      FreeBSD-SA-14:15.iconv
27                         FreeBSD-SA-14:16.file
28                         FreeBSD-EN-14:07.pmap
29
30         Fix iconv(3) NULL pointer dereference and out-of-bounds array
31         access. [SA-14:15]
32
33         Fix multiple vulnerabilities in file(1) and libmagic(3).
34         [SA-14:16]
35
36         Worked around bug with PCID implementation. [EN-14:07]
37
38 20140605:       p5      FreeBSD-SA-14:14.openssl
39         Fix OpenSSL multiple vulnerabilities. [SA-14:14]
40
41 20140603:       p4      FreeBSD-SA-14:11.sendmail
42                         FreeBSD-SA-14:13.pam
43                         FreeBSD-EN-14:06.exec
44
45         Fix sendmail improper close-on-exec flag handling. [SA-14:11]
46
47         Fix incorrect error handling in PAM policy parser. [SA-14:13]
48
49         Fix triple-fault when executing from a threaded process.
50         [EN-14:06]
51
52 20140513:       p3      FreeBSD-SA-14:10.openssl
53                         FreeBSD-EN-14:05.ciss
54
55         Fix OpenSSL NULL pointer deference vulnerability. [SA-14:10]
56
57         Fix data corruption with ciss(4). [EN-14:05]
58
59 20140430:       p2      FreeBSD-SA-14:07.devfs
60                         FreeBSD-SA-14:08.tcp
61                         FreeBSD-SA-14:09.openssl
62
63         Fix devfs rules not applied by default for jails. [SA-14:07]
64
65         Fix TCP reassembly vulnerability. [SA-14:08]
66
67         Fix OpenSSL use-after-free vulnerability. [SA-14:09]
68
69 20140408:       p1      FreeBSD-SA-14:05.nfsserver
70                         FreeBSD-SA-14:06.openssl
71         Fix deadlock in the NFS server. [SA-14:05]
72
73         Fix multiple vulnerabilities in OpenSSL. [SA-14:06]
74
75 20131223:
76         The behavior of gss_pseudo_random() for the krb5 mechanism
77         has changed, for applications requesting a longer random string
78         than produced by the underlying enctype's pseudo-random() function.
79         In particular, the random string produced from a session key of
80         enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
81         be different at the 17th octet and later, after this change.
82         The counter used in the PRF+ construction is now encoded as a
83         big-endian integer in accordance with RFC 4402.
84
85 20131031:
86         The default version of mtree is nmtree which is obtained from
87         NetBSD.  The output is generally the same, but may vary
88         slightly.  If you found you need identical output adding
89         "-F freebsd9" to the command line should do the trick.  For the
90         time being, the old mtree is available as fmtree.
91
92 20131014:
93         libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
94         This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
95         1.1.4_8 and verify bsdyml not linked in, before running "make
96         delete-old-libs":
97           # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
98           or
99           # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
100
101 20131010:
102         The rc.d/jail script has been updated to support jail(8)
103         configuration file.  The "jail_<jname>_*" rc.conf(5) variables
104         for per-jail configuration are automatically converted to
105         /var/run/jail.<jname>.conf before the jail(8) utility is invoked.
106         This is transparently backward compatible.  See below about some
107         incompatibilities and rc.conf(5) manual page for more details.
108
109         These variables are now deprecated in favor of jail(8) configuration
110         file.  One can use "rc.d/jail config <jname>" command to generate
111         a jail(8) configuration file in /var/run/jail.<jname>.conf without
112         running the jail(8) utility.   The default pathname of the
113         configuration file is /etc/jail.conf and can be specified by
114         using $jail_conf or $jail_<jname>_conf variables.
115
116         Please note that jail_devfs_ruleset accepts an integer at
117         this moment.  Please consider to rewrite the ruleset name
118         with an integer.
119
120 20130930:
121         BIND has been removed from the base system.  If all you need
122         is a local resolver, simply enable and start the local_unbound
123         service instead.  Otherwise, several versions of BIND are
124         available in the ports tree.   The dns/bind99 port is one example.
125
126         With this change, nslookup(1) and dig(1) are no longer in the base
127         system.  Users should instead use host(1) and drill(1) which are
128         in the base system.  Alternatively, nslookup and dig can
129         be obtained by installing the dns/bind-tools port.
130
131 20130916:
132         With the addition of unbound(8), a new unbound user is now
133         required during installworld.  "mergemaster -p" can be used to
134         add the user prior to installworld, as documented in the handbook.
135
136 20130911:
137         OpenSSH is now built with DNSSEC support, and will by default
138         silently trust signed SSHFP records.  This can be controlled with
139         the VerifyHostKeyDNS client configuration setting.  DNSSEC support
140         can be disabled entirely with the WITHOUT_LDNS option in src.conf.
141
142 20130906:
143         The GNU Compiler Collection and C++ standard library (libstdc++)
144         are no longer built by default on platforms where clang is the system
145         compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
146         options in src.conf.  
147
148 20130905:
149         The PROCDESC kernel option is now part of the GENERIC kernel
150         configuration and is required for the rwhod(8) to work.
151         If you are using custom kernel configuration, you should include
152         'options PROCDESC'.
153
154 20130905:
155         The API and ABI related to the Capsicum framework was modified
156         in backward incompatible way. The userland libraries and programs
157         have to be recompiled to work with the new kernel. This includes the
158         following libraries and programs, but the whole buildworld is
159         advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
160         kdump, procstat, rwho, rwhod, uniq.
161
162 20130903:
163         AES-NI intrinsic support has been added to gcc.  The AES-NI module
164         has been updated to use this support.  A new gcc is required to build
165         the aesni module on both i386 and amd64.
166
167 20130821:
168         The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
169         Thus "device padlock_rng" and "device rdrand_rng" should be
170         used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
171
172 20130813:
173         WITH_ICONV has been split into two feature sets.  WITH_ICONV now
174         enables just the iconv* functionality and is now on by default.
175         WITH_LIBICONV_COMPAT enables the libiconv api and link time
176         compatability.  Set WITHOUT_ICONV to build the old way.
177         If you have been using WITH_ICONV before, you will very likely
178         need to turn on WITH_LIBICONV_COMPAT.
179
180 20130806:
181         INVARIANTS option now enables DEBUG for code with OpenSolaris and
182         Illumos origin, including ZFS.  If you have INVARIANTS in your
183         kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
184         explicitly.
185         DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
186         locks if WITNESS option was set.  Because that generated a lot of
187         witness(9) reports and all of them were believed to be false
188         positives, this is no longer done.  New option OPENSOLARIS_WITNESS
189         can be used to achieve the previous behavior.
190
191 20130806:
192         Timer values in IPv6 data structures now use time_uptime instead
193         of time_second.  Although this is not a user-visible functional
194         change, userland utilities which directly use them---ndp(8),
195         rtadvd(8), and rtsold(8) in the base system---need to be updated
196         to r253970 or later.
197
198 20130802:
199         find -delete can now delete the pathnames given as arguments,
200         instead of only files found below them or if the pathname did
201         not contain any slashes. Formerly, the following error message
202         would result:
203
204         find: -delete: <path>: relative path potentially not safe
205
206         Deleting the pathnames given as arguments can be prevented
207         without error messages using -mindepth 1 or by changing
208         directory and passing "." as argument to find. This works in the
209         old as well as the new version of find.
210
211 20130726:
212         Behavior of devfs rules path matching has been changed.
213         Pattern is now always matched against fully qualified devfs
214         path and slash characters must be explicitly matched by
215         slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
216         subdirectories must be reviewed.
217
218 20130716:
219         The default ARM ABI has changed to the ARM EABI. The old ABI is
220         incompatible with the ARM EABI and all programs and modules will
221         need to be rebuilt to work with a new kernel.
222
223         To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
224
225         NOTE: Support for the old ABI will be removed in the future and
226         users are advised to upgrade.
227
228 20130709:
229         pkg_install has been disconnected from the build if you really need it
230         you should add WITH_PKGTOOLS in your src.conf(5).
231
232 20130709:
233         Most of network statistics structures were changed to be able
234         keep 64-bits counters. Thus all tools, that work with networking
235         statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
236
237 20130629:
238         Fix targets that run multiple make's to use && rather than ;
239         so that subsequent steps depend on success of previous.
240
241         NOTE: if building 'universe' with -j* on stable/8 or stable/9
242         it would be better to start the build using bmake, to avoid
243         overloading the machine.
244
245 20130618:
246         Fix a bug that allowed a tracing process (e.g. gdb) to write
247         to a memory-mapped file in the traced process's address space
248         even if neither the traced process nor the tracing process had
249         write access to that file.
250
251 20130615:
252         CVS has been removed from the base system.  An exact copy
253         of the code is available from the devel/cvs port.
254
255 20130613:
256         Some people report the following error after the switch to bmake:
257
258                 make: illegal option -- J
259                 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
260                         ...
261                 *** [buildworld] Error code 2
262
263         this likely due to an old instance of make in
264         ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
265         which src/Makefile will use that blindly, if it exists, so if
266         you see the above error:
267
268                 rm -rf `make -V MAKEPATH`
269
270         should resolve it.
271
272 20130516:
273         Use bmake by default.
274         Whereas before one could choose to build with bmake via
275         -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
276         make. The goal is to remove these knobs for 10-RELEASE.
277
278         It is worth noting that bmake (like gmake) treats the command
279         line as the unit of failure, rather than statements within the
280         command line.  Thus '(cd some/where && dosomething)' is safer
281         than 'cd some/where; dosomething'. The '()' allows consistent
282         behavior in parallel build.
283
284 20130429:
285         Fix a bug that allows NFS clients to issue READDIR on files.
286
287 20130426:
288         The WITHOUT_IDEA option has been removed because
289         the IDEA patent expired.
290
291 20130426:
292         The sysctl which controls TRIM support under ZFS has been renamed
293         from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
294         enabled by default.
295
296 20130425:
297         The mergemaster command now uses the default MAKEOBJDIRPREFIX
298         rather than creating it's own in the temporary directory in
299         order allow access to bootstrapped versions of tools such as
300         install and mtree.  When upgrading from version of FreeBSD where
301         the install command does not support -l, you will need to
302         install a new mergemaster command if mergemaster -p is required.
303         This can be accomplished with the command (cd src/usr.sbin/mergemaster
304         && make install).
305
306 20130404:
307         Legacy ATA stack, disabled and replaced by new CAM-based one since
308         FreeBSD 9.0, completely removed from the sources.  Kernel modules
309         atadisk and atapi*, user-level tools atacontrol and burncd are
310         removed.  Kernel option `options ATA_CAM` is now permanently enabled
311         and removed.
312
313 20130319:
314         SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
315         and socketpair(2). Software, in particular Kerberos, may
316         automatically detect and use these during building. The resulting
317         binaries will not work on older kernels.
318
319 20130308:
320         CTL_DISABLE has also been added to the sparc64 GENERIC (for further
321         information, see the respective 20130304 entry).
322
323 20130304:
324         Recent commits to callout(9) changed the size of struct callout,
325         so the KBI is probably heavily disturbed. Also, some functions
326         in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
327         by macros. Every kernel module using it won't load, so rebuild
328         is requested.
329
330         The ctl device has been re-enabled in GENERIC for i386 and amd64,
331         but does not initialize by default (because of the new CTL_DISABLE
332         option) to save memory.  To re-enable it, remove the CTL_DISABLE
333         option from the kernel config file or set kern.cam.ctl.disable=0
334         in /boot/loader.conf.
335
336 20130301:
337         The ctl device has been disabled in GENERIC for i386 and amd64.
338         This was done due to the extra memory being allocated at system
339         initialisation time by the ctl driver which was only used if
340         a CAM target device was created.  This makes a FreeBSD system
341         unusable on 128MB or less of RAM.
342
343 20130208:
344         A new compression method (lz4) has been merged to -HEAD.  Please
345         refer to zpool-features(7) for more information.
346
347         Please refer to the "ZFS notes" section of this file for information
348         on upgrading boot ZFS pools.
349
350 20130129:
351         A BSD-licensed patch(1) variant has been added and is installed
352         as bsdpatch, being the GNU version the default patch.
353         To inverse the logic and use the BSD-licensed one as default,
354         while having the GNU version installed as gnupatch, rebuild
355         and install world with the WITH_BSD_PATCH knob set.
356
357 20130121:
358         Due to the use of the new -l option to install(1) during build
359         and install, you must take care not to directly set the INSTALL
360         make variable in your /etc/make.conf, /etc/src.conf, or on the
361         command line.  If you wish to use the -C flag for all installs
362         you may be able to add INSTALL+=-C to /etc/make.conf or
363         /etc/src.conf.
364
365 20130118:
366         The install(1) option -M has changed meaning and now takes an
367         argument that is a file or path to append logs to.  In the
368         unlikely event that -M was the last option on the command line
369         and the command line contained at least two files and a target
370         directory the first file will have logs appended to it.  The -M
371         option served little practical purpose in the last decade so its
372         use is expected to be extremely rare.
373
374 20121223:
375         After switching to Clang as the default compiler some users of ZFS
376         on i386 systems started to experience stack overflow kernel panics.
377         Please consider using 'options KSTACK_PAGES=4' in such configurations.
378
379 20121222:
380         GEOM_LABEL now mangles label names read from file system metadata.
381         Mangling affect labels containing spaces, non-printable characters,
382         '%' or '"'. Device names in /etc/fstab and other places may need to
383         be updated.
384
385 20121217:
386         By default, only the 10 most recent kernel dumps will be saved.  To
387         restore the previous behaviour (no limit on the number of kernel dumps
388         stored in the dump directory) add the following line to /etc/rc.conf:
389
390                 savecore_flags=""
391
392 20121201:
393         With the addition of auditdistd(8), a new auditdistd user is now
394         required during installworld.  "mergemaster -p" can be used to
395         add the user prior to installworld, as documented in the handbook.
396
397 20121117:
398         The sin6_scope_id member variable in struct sockaddr_in6 is now
399         filled by the kernel before passing the structure to the userland via
400         sysctl or routing socket.  This means the KAME-specific embedded scope
401         id in sin6_addr.s6_addr[2] is always cleared in userland application.
402         This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
403         __FreeBSD_version is bumped to 1000025.
404
405 20121105:
406         On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
407         This means that the world and kernel will be compiled with clang
408         and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
409         and /usr/bin/cpp.  To disable this behavior and revert to building
410         with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
411         of current may need to bootstrap WITHOUT_CLANG first if the clang
412         build fails (its compatibility window doesn't extend to the 9 stable
413         branch point).
414
415 20121102:
416         The IPFIREWALL_FORWARD kernel option has been removed. Its
417         functionality now turned on by default.
418
419 20121023:
420         The ZERO_COPY_SOCKET kernel option has been removed and
421         split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
422         NB: SOCKET_SEND_COW uses the VM page based copy-on-write
423         mechanism which is not safe and may result in kernel crashes.
424         NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
425         driver supports disposeable external page sized mbuf storage.
426         Proper replacements for both zero-copy mechanisms are under
427         consideration and will eventually lead to complete removal
428         of the two kernel options.
429
430 20121023:
431         The IPv4 network stack has been converted to network byte
432         order. The following modules need to be recompiled together
433         with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
434         pf(4), ipfw(4), ng_ipfw(4), stf(4).
435
436 20121022:
437         Support for non-MPSAFE filesystems was removed from VFS. The
438         VFS_VERSION was bumped, all filesystem modules shall be
439         recompiled.
440
441 20121018:
442         All the non-MPSAFE filesystems have been disconnected from
443         the build. The full list includes: codafs, hpfs, ntfs, nwfs,
444         portalfs, smbfs, xfs.
445
446 20121016:
447         The interface cloning API and ABI has changed. The following
448         modules need to be recompiled together with kernel:
449         ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
450         vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
451         faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
452
453 20121015:
454         The sdhci driver was split in two parts: sdhci (generic SD Host
455         Controller logic) and sdhci_pci (actual hardware driver).
456         No kernel config modifications are required, but if you
457         load sdhc as a module you must switch to sdhci_pci instead.
458
459 20121014:
460         Import the FUSE kernel and userland support into base system.
461
462 20121013:
463         The GNU sort(1) program has been removed since the BSD-licensed
464         sort(1) has been the default for quite some time and no serious
465         problems have been reported.  The corresponding WITH_GNU_SORT
466         knob has also gone.
467
468 20121006:
469         The pfil(9) API/ABI for AF_INET family has been changed. Packet
470         filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
471         with new kernel.
472
473 20121001:
474         The net80211(4) ABI has been changed to allow for improved driver
475         PS-POLL and power-save support.  All wireless drivers need to be
476         recompiled to work with the new kernel.
477
478 20120913:
479         The random(4) support for the VIA hardware random number
480         generator (`PADLOCK') is no longer enabled unconditionally.
481         Add the padlock_rng device in the custom kernel config if
482         needed.  The GENERIC kernels on i386 and amd64 do include the
483         device, so the change only affects the custom kernel
484         configurations.
485
486 20120908:
487         The pf(4) packet filter ABI has been changed. pfctl(8) and
488         snmp_pf module need to be recompiled to work with new kernel.
489
490 20120828:
491         A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
492         to -HEAD. Pools that have empty_bpobj in active state can not be
493         imported read-write with ZFS implementations that do not support
494         this feature. For more information read the zpool-features(5)
495         manual page.
496
497 20120727:
498         The sparc64 ZFS loader has been changed to no longer try to auto-
499         detect ZFS providers based on diskN aliases but now requires these
500         to be explicitly listed in the OFW boot-device environment variable. 
501
502 20120712:
503         The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
504         libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
505         configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
506
507 20120712:
508         The following sysctls and tunables have been renamed for consistency
509         with other variables:
510           kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
511           kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
512
513 20120628:
514         The sort utility has been replaced with BSD sort.  For now, GNU sort
515         is also available as "gnusort" or the default can be set back to
516         GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
517         installed as "bsdsort".
518
519 20120611:
520         A new version of ZFS (pool version 5000) has been merged to -HEAD.
521         Starting with this version the old system of ZFS pool versioning
522         is superseded by "feature flags". This concept enables forward
523         compatibility against certain future changes in functionality of ZFS
524         pools. The first read-only compatible "feature flag" for ZFS pools
525         is named "com.delphix:async_destroy". For more information
526         read the new zpool-features(5) manual page.
527         Please refer to the "ZFS notes" section of this file for information
528         on upgrading boot ZFS pools.
529
530 20120417:
531         The malloc(3) implementation embedded in libc now uses sources imported
532         as contrib/jemalloc.  The most disruptive API change is to
533         /etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
534         delete it prior to installworld, and optionally re-create it using the
535         new format after rebooting.  See malloc.conf(5) for details
536         (specifically the TUNING section and the "opt.*" entries in the MALLCTL
537         NAMESPACE section).
538
539 20120328:
540         Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
541         is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
542         now spelled mips.  This is to aid compatibility with third-party
543         software that expects this naming scheme in uname(3).  Little-endian
544         settings are unchanged. If you are updating a big-endian mips64 machine
545         from before this change, you may need to set MACHINE_ARCH=mips64 in
546         your environment before the new build system will recognize your machine.
547
548 20120306:
549         Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
550         platforms.
551
552 20120229:
553         Now unix domain sockets behave "as expected" on nullfs(5). Previously
554         nullfs(5) did not pass through all behaviours to the underlying layer,
555         as a result if we bound to a socket on the lower layer we could connect
556         only to the lower path; if we bound to the upper layer we could connect
557         only to the upper path. The new behavior is one can connect to both the
558         lower and the upper paths regardless what layer path one binds to.
559
560 20120211:
561         The getifaddrs upgrade path broken with 20111215 has been restored.
562         If you have upgraded in between 20111215 and 20120209 you need to
563         recompile libc again with your kernel.  You still need to recompile
564         world to be able to configure CARP but this restriction already
565         comes from 20111215.
566
567 20120114:
568         The set_rcvar() function has been removed from /etc/rc.subr.  All
569         base and ports rc.d scripts have been updated, so if you have a
570         port installed with a script in /usr/local/etc/rc.d you can either
571         hand-edit the rcvar= line, or reinstall the port.
572
573         An easy way to handle the mass-update of /etc/rc.d:
574         rm /etc/rc.d/* && mergemaster -i
575
576 20120109:
577         panic(9) now stops other CPUs in the SMP systems, disables interrupts
578         on the current CPU and prevents other threads from running.
579         This behavior can be reverted using the kern.stop_scheduler_on_panic
580         tunable/sysctl.
581         The new behavior can be incompatible with kern.sync_on_panic.
582
583 20111215:
584         The carp(4) facility has been changed significantly. Configuration
585         of the CARP protocol via ifconfig(8) has changed, as well as format
586         of CARP events submitted to devd(8) has changed. See manual pages
587         for more information. The arpbalance feature of carp(4) is currently
588         not supported anymore.
589
590         Size of struct in_aliasreq, struct in6_aliasreq has changed. User
591         utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
592         need to be recompiled.
593
594 20111122:
595         The acpi_wmi(4) status device /dev/wmistat has been renamed to
596         /dev/wmistat0.
597
598 20111108:
599         The option VFS_ALLOW_NONMPSAFE option has been added in order to
600         explicitely support non-MPSAFE filesystems.
601         It is on by default for all supported platform at this present
602         time.
603
604 20111101:
605         The broken amd(4) driver has been replaced with esp(4) in the amd64,
606         i386 and pc98 GENERIC kernel configuration files.
607
608 20110930:
609         sysinstall has been removed
610
611 20110923:
612         The stable/9 branch created in subversion.  This corresponds to the
613         RELENG_9 branch in CVS.
614
615 20110913:
616         This commit modifies vfs_register() so that it uses a hash
617         calculation to set vfc_typenum, which is enabled by default.
618         The first time a system is booted after this change, the
619         vfc_typenum values will change for all file systems. The
620         main effect of this is a change to the NFS server file handles
621         for file systems that use vfc_typenum in their fsid, such as ZFS.
622         It will, however, prevent vfc_typenum from changing when file
623         systems are loaded in a different order for subsequent reboots.
624         To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf
625         until you are ready to remount all NFS clients after a reboot.
626
627 20110828:
628         Bump the shared library version numbers for libraries that
629         do not use symbol versioning, have changed the ABI compared
630         to stable/8 and which shared library version was not bumped.
631         Done as part of 9.0-RELEASE cycle.
632
633 20110815:
634         During the merge of Capsicum features, the fget(9) KPI was modified.
635         This may require the rebuilding of out-of-tree device drivers --
636         issues have been reported specifically with the nVidia device driver.
637         __FreeBSD_version is bumped to 900041.
638
639         Also, there is a period between 20110811 and 20110814 where the
640         special devices /dev/{stdin,stdout,stderr} did not work correctly.
641         Building world from a kernel during that window may not work.
642
643 20110628:
644         The packet filter (pf) code has been updated to OpenBSD 4.5.
645         You need to update userland tools to be in sync with kernel.
646         This update breaks backward compatibility with earlier pfsync(4)
647         versions.  Care must be taken when updating redundant firewall setups.
648
649 20110608:
650         The following sysctls and tunables are retired on x86 platforms:
651                 machdep.hlt_cpus
652                 machdep.hlt_logical_cpus
653         The following sysctl is retired:
654                 machdep.hyperthreading_allowed
655         The sysctls were supposed to provide a way to dynamically offline and
656         online selected CPUs on x86 platforms, but the implementation has not
657         been reliable especially with SCHED_ULE scheduler.
658         machdep.hyperthreading_allowed tunable is still available to ignore
659         hyperthreading CPUs at OS level.
660         Individual CPUs can be disabled using hint.lapic.X.disabled tunable,
661         where X is an APIC ID of a CPU.  Be advised, though, that disabling
662         CPUs in non-uniform fashion will result in non-uniform topology and
663         may lead to sub-optimal system performance with SCHED_ULE, which is
664         a default scheduler.
665
666 20110607:
667         cpumask_t type is retired and cpuset_t is used in order to describe
668         a mask of CPUs.
669
670 20110531:
671         Changes to ifconfig(8) for dynamic address family detection mandate
672         that you are running a kernel of 20110525 or later.  Make sure to
673         follow the update procedure to boot a new kernel before installing
674         world.
675
676 20110513:
677         Support for sun4v architecture is officially dropped
678
679 20110503:
680         Several KPI breaking changes have been committed to the mii(4) layer,
681         the PHY drivers and consequently some Ethernet drivers using mii(4).
682         This means that miibus.ko and the modules of the affected Ethernet
683         drivers need to be recompiled.
684
685         Note to kernel developers: Given that the OUI bit reversion problem
686         was fixed as part of these changes all mii(4) commits related to OUIs,
687         i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific
688         handling, no longer can be merged verbatim to stable/8 and previous
689         branches.
690
691 20110430:
692         Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci'
693         into their kernel configurations along with 'device pci'.
694
695 20110427:
696         The default NFS client is now the new NFS client, so fstype "newnfs"
697         is now "nfs" and the regular/old NFS client is now fstype "oldnfs".
698         Although mounts via fstype "nfs" will usually work without userland
699         changes, it is recommended that the mount(8) and mount_nfs(8)
700         commands be rebuilt from sources and that a link to mount_nfs called
701         mount_oldnfs be created. The new client is compiled into the
702         kernel with "options NFSCL" and this is needed for diskless root
703         file systems. The GENERIC kernel configs have been changed to use
704         NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER.
705         To use the regular/old client, you can "mount -t oldnfs ...". For
706         a diskless root file system, you must also include a line like:
707         
708         vfs.root.mountfrom="oldnfs:"
709
710         in the boot/loader.conf on the root fs on the NFS server to make
711         a diskless root fs use the old client.
712
713 20110424:
714         The GENERIC kernels for all architectures now default to the new
715         CAM-based ATA stack. It means that all legacy ATA drivers were
716         removed and replaced by respective CAM drivers. If you are using
717         ATA device names in /etc/fstab or other places, make sure to update
718         them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY,
719         where 'Y's are the sequential numbers starting from zero for each type
720         in order of detection, unless configured otherwise with tunables,
721         see cam(4)). There will be symbolic links created in /dev/ to map
722         old adX devices to the respective adaY. They should provide basic
723         compatibility for file systems mounting in most cases, but they do
724         not support old user-level APIs and do not have respective providers
725         in GEOM. Consider using updated management tools with new device names.
726
727         It is possible to load devices ahci, ata, siis and mvs as modules,
728         but option ATA_CAM should remain in kernel configuration to make ata
729         module work as CAM driver supporting legacy ATA controllers. Device ata
730         still can be used in modular fashion (atacore + ...). Modules atadisk
731         and atapi* are not used and won't affect operation in ATA_CAM mode.
732         Note that to use CAM-based ATA kernel should include CAM devices
733         scbus, pass, da (or explicitly ada), cd and optionally others. All of
734         them are parts of the cam module.
735
736         ataraid(4) functionality is now supported by the RAID GEOM class.
737         To use it you can load geom_raid kernel module and use graid(8) tool
738         for management. Instead of /dev/arX device names, use /dev/raid/rX.
739
740         No kernel config options or code have been removed, so if a problem
741         arises, please report it and optionally revert to the old ATA stack.
742         In order to do it you can remove from the kernel config:
743             options        ATA_CAM
744             device         ahci
745             device         mvs
746             device         siis
747         , and instead add back:
748             device         atadisk         # ATA disk drives
749             device         ataraid         # ATA RAID drives
750             device         atapicd         # ATAPI CDROM drives
751             device         atapifd         # ATAPI floppy drives
752             device         atapist         # ATAPI tape drives
753
754 20110423:
755         The default NFS server has been changed to the new server, which
756         was referred to as the experimental server. If you need to switch
757         back to the old NFS server, you must now put the "-o" option on
758         both the mountd and nfsd commands. This can be done using the
759         mountd_flags and nfs_server_flags rc.conf variables until an
760         update to the rc scripts is committed, which is coming soon.
761
762 20110418:
763         The GNU Objective-C runtime library (libobjc), and other Objective-C
764         related components have been removed from the base system.  If you
765         require an Objective-C library, please use one of the available ports.
766
767 20110331:
768         ath(4) has been split into bus- and device- modules. if_ath contains
769         the HAL, the TX rate control and the network device code. if_ath_pci
770         contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb
771         contains the AHB glue. Users need to load both if_ath_pci and if_ath
772         in order to use ath on everything else.
773
774         TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only
775         need to load if_ath and if_ath_pci for ath(4) operation.
776
777 20110314:
778         As part of the replacement of sysinstall, the process of building
779         release media has changed significantly. For details, please re-read
780         release(7), which has been updated to reflect the new build process.
781
782 20110218:
783         GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD.  This
784         is the last available version under GPLv2.  It brings a number of new
785         features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE
786         4.1 and SSE 4.2), better support for powerpc64, a number of new
787         directives, and lots of other small improvements.  See the ChangeLog
788         file in contrib/binutils for the full details.
789
790 20110218:
791         IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868
792         compliant, and will now use half of hash for authentication.
793         This will break interoperability with all stacks (including all
794         actual FreeBSD versions) who implement
795         draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for
796         authentication).
797         The only workaround with such peers is to use another HMAC
798         algorithm for IPsec ("phase 2") authentication.
799
800 20110207:
801         Remove the uio_yield prototype and symbol.  This function has
802         been misnamed since it was introduced and should not be
803         globally exposed with this name.  The equivalent functionality
804         is now available using kern_yield(curthread->td_user_pri).
805         The function remains undocumented.
806
807 20110112:
808         A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers,
809         symmetric with the existing SYSCTL_[ADD_]QUAD.  Type checking
810         for scalar sysctls is defined but disabled.  Code that needs
811         UQUAD to pass the type checking that must compile on older
812         systems where the define is not present can check against
813         __FreeBSD_version >= 900030.
814
815         The system dialog(1) has been replaced with a new version previously
816         in ports as devel/cdialog. dialog(1) is mostly command-line compatible
817         with the previous version, but the libdialog associated with it has
818         a largely incompatible API. As such, the original version of libdialog
819         will be kept temporarily as libodialog, until its base system consumers
820         are replaced or updated. Bump __FreeBSD_version to 900030.
821
822 20110103:
823         If you are trying to run make universe on a -stable system, and you get
824         the following warning:
825         "Makefile", line 356: "Target architecture for i386/conf/GENERIC 
826         unknown.  config(8) likely too old."
827         or something similar to it, then you must upgrade your -stable system
828         to 8.2-Release or newer (really, any time after r210146 7/15/2010 in
829         stable/8) or build the config from the latest stable/8 branch and
830         install it on your system.
831
832         Prior to this date, building a current universe on 8-stable system from
833         between 7/15/2010 and 1/2/2011 would result in a weird shell parsing
834         error in the first kernel build phase.  A new config on those old 
835         systems will fix that problem for older versions of -current.
836
837 20101228:
838         The TCP stack has been modified to allow Khelp modules to interact with
839         it via helper hook points and store per-connection data in the TCP
840         control block. Bump __FreeBSD_version to 900029. User space tools that
841         rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to
842         be recompiled.
843
844 20101114:
845         Generic IEEE 802.3 annex 31B full duplex flow control support has been
846         added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along
847         with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted
848         to take advantage of it instead of using custom implementations.  This
849         means that these drivers now no longer unconditionally advertise
850         support for flow control but only do so if flow control is a selected
851         media option.  This was implemented in the generic support that way in
852         order to allow flow control to be switched on and off via ifconfig(8)
853         with the PHY specific default to typically off in order to protect
854         from unwanted effects.  Consequently, if you used flow control with
855         one of the above mentioned drivers you now need to explicitly enable
856         it, for example via:
857                 ifconfig bge0 media auto mediaopt flowcontrol
858
859         Along with the above mentioned changes generic support for setting
860         1000baseT master mode also has been added and brgphy(4), ciphy(4),
861         e1000phy(4) as well as ip1000phy(4) have been converted to take
862         advantage of it.  This means that these drivers now no longer take the
863         link0 parameter for selecting master mode but the master media option
864         has to be used instead, for example like in the following:
865                 ifconfig bge0 media 1000baseT mediaopt full-duplex,master
866
867         Selection of master mode now is also available with all other PHY
868         drivers supporting 1000baseT.
869
870 20101111:
871         The TCP stack has received a significant update to add support for
872         modularised congestion control and generally improve the clarity of
873         congestion control decisions. Bump __FreeBSD_version to 900025. User
874         space tools that rely on the size of struct tcpcb in tcp_var.h (e.g.
875         sockstat) need to be recompiled.
876
877 20101002:
878         The man(1) utility has been replaced by a new version that no longer
879         uses /etc/manpath.config. Please consult man.conf(5) for how to
880         migrate local entries to the new format.
881
882 20100928:
883         The copyright strings printed by login(1) and sshd(8) at the time of a
884         new connection have been removed to follow other operating systems and
885         upstream sshd.
886
887 20100915:
888         A workaround for a fixed ld bug has been removed in kernel code,
889         so make sure that your system ld is built from sources after
890         revision 210245 from 2010-07-19 (r211583 if building head kernel
891         on stable/8, r211584 for stable/7; both from 2010-08-21).
892         A symptom of incorrect ld version is different addresses for
893         set_pcpu section and __start_set_pcpu symbol in kernel and/or modules.
894
895 20100913:
896         The $ipv6_prefer variable in rc.conf(5) has been split into
897         $ip6addrctl_policy and $ipv6_activate_all_interfaces.
898
899         The $ip6addrctl_policy is a variable to choose a pre-defined
900         address selection policy set by ip6addrctl(8).  A value
901         "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified.  The
902         default is "AUTO".
903
904         The $ipv6_activate_all_interfaces specifies whether IFDISABLED
905         flag (see an entry of 20090926) is set on an interface with no
906         corresponding $ifconfig_IF_ipv6 line.  The default is "NO" for
907         security reason.  If you want IPv6 link-local address on all
908         interfaces by default, set this to "YES".
909
910         The old ipv6_prefer="YES" is equivalent to
911         ipv6_activate_all_interfaces="YES" and
912         ip6addrctl_policy="ipv6_prefer".
913
914 20100913:
915         DTrace has grown support for userland tracing. Due to this, DTrace is
916         now i386 and amd64 only.
917         dtruss(1) is now installed by default on those systems and a new
918         kernel module is needed for userland tracing: fasttrap.
919         No changes to your kernel config file are necessary to enable
920         userland tracing, but you might consider adding 'STRIP=' and
921         'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want
922         to have informative userland stack traces in DTrace (ustack).
923
924 20100725:
925         The acpi_aiboost(4) driver has been removed in favor of the new
926         aibs(4) driver. You should update your kernel configuration file.
927
928 20100722:
929         BSD grep has been imported to the base system and it is built by
930         default.  It is completely BSD licensed, highly GNU-compatible, uses
931         less memory than its GNU counterpart and has a small codebase.
932         However, it is slower than its GNU counterpart, which is mostly
933         noticeable for larger searches, for smaller ones it is measurable
934         but not significant.  The reason is complex, the most important factor
935         is that we lack a modern and efficient regex library and GNU
936         overcomes this by optimizing the searches internally.  Future work
937         on improving the regex performance is planned, for the meantime,
938         users that need better performance, can build GNU grep instead by
939         setting the WITH_GNU_GREP knob.
940
941 20100713:
942         Due to the import of powerpc64 support, all existing powerpc kernel
943         configuration files must be updated with a machine directive like this:
944             machine powerpc powerpc
945
946         In addition, an updated config(8) is required to build powerpc kernels
947         after this change.
948
949 20100713:
950         A new version of ZFS (version 15) has been merged to -HEAD.
951         This version uses a python library for the following subcommands:
952         zfs allow, zfs unallow, zfs groupspace, zfs userspace.
953         For full functionality of these commands the following port must
954         be installed: sysutils/py-zfs
955
956 20100429:
957         'vm_page's are now hashed by physical address to an array of mutexes.
958         Currently this is only used to serialize access to hold_count. Over 
959         time the page queue mutex will be peeled away. This changes the size
960         of pmap on every architecture. And requires all callers of vm_page_hold
961         and vm_page_unhold to be updated. 
962  
963 20100402:
964         WITH_CTF can now be specified in src.conf (not recommended, there
965         are some problems with static executables), make.conf (would also
966         affect ports which do not use GNU make and do not override the
967         compile targets) or in the kernel config (via "makeoptions
968         WITH_CTF=yes").
969         When WITH_CTF was specified there before this was silently ignored,
970         so make sure that WITH_CTF is not used in places which could lead
971         to unwanted behavior.
972
973 20100311:
974         The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32
975         to allow 32-bit compatibility on non-x86 platforms. All kernel
976         configurations on amd64 and ia64 platforms using these options must
977         be modified accordingly.
978
979 20100113:
980         The utmp user accounting database has been replaced with utmpx,
981         the user accounting interface standardized by POSIX.
982         Unfortunately the semantics of utmp and utmpx don't match,
983         making it practically impossible to support both interfaces.
984         The user accounting database is used by tools like finger(1),
985         last(1), talk(1), w(1) and ac(8).
986
987         All applications in the base system use utmpx.  This means only
988         local binaries (e.g. from the ports tree) may still use these
989         utmp database files.  These applications must be rebuilt to make
990         use of utmpx.
991
992         After the system has been upgraded, it is safe to remove the old
993         log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*),
994         assuming their contents is of no importance anymore.  Old wtmp
995         databases can only be used by last(1) and ac(8) after they have
996         been converted to the new format using wtmpcvt(1).
997
998 20100108:
999         Introduce the kernel thread "deadlock resolver" (which can be enabled
1000         via the DEADLKRES option, see NOTES for more details) and the
1001         sleepq_type() function for sleepqueues.
1002
1003 20091202:
1004         The rc.firewall and rc.firewall6 were unified, and
1005         rc.firewall6 and rc.d/ip6fw were removed.
1006         According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
1007         variables are obsoleted.  Instead, the following new rc
1008         variables are added to rc.d/ipfw:
1009
1010                 firewall_client_net_ipv6, firewall_simple_iif_ipv6,
1011                 firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
1012                 firewall_simple_onet_ipv6, firewall_trusted_ipv6
1013
1014         The meanings correspond to the relevant IPv4 variables.
1015
1016 20091125:
1017         8.0-RELEASE.
1018
1019 20091113:
1020         The default terminal emulation for syscons(4) has been changed
1021         from cons25 to xterm on all platforms except pc98.  This means
1022         that the /etc/ttys file needs to be updated to ensure correct
1023         operation of applications on the console.
1024
1025         The terminal emulation style can be toggled per window by using
1026         vidcontrol(1)'s -T flag.  The TEKEN_CONS25 kernel configuration
1027         options can be used to change the compile-time default back to
1028         cons25.
1029
1030         To prevent graphical artifacts, make sure the TERM environment
1031         variable is set to match the terminal emulation that is being
1032         performed by syscons(4).
1033
1034 20091109:
1035         The layout of the structure ieee80211req_scan_result has changed.
1036         Applications that require wireless scan results (e.g. ifconfig(8))
1037         from net80211 need to be recompiled.
1038
1039         Applications such as wpa_supplicant(8) may require a full world
1040         build without using NO_CLEAN in order to get synchronized with the
1041         new structure.
1042
1043 20091025:
1044         The iwn(4) driver has been updated to support the 5000 and 5150 series.
1045         There's one kernel module for each firmware. Adding "device iwnfw"
1046         to the kernel configuration file means including all three firmware
1047         images inside the kernel. If you want to include just the one for
1048         your wireless card, use the devices iwn4965fw, iwn5000fw or
1049         iwn5150fw.
1050
1051 20090926:
1052         The rc.d/network_ipv6, IPv6 configuration script has been integrated
1053         into rc.d/netif.  The changes are the following:
1054
1055         1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF
1056            for IPv4.  For aliases, $ifconfig_IF_aliasN should be used.
1057            Note that both variables need the "inet6" keyword at the head.
1058
1059            Do not set $ipv6_network_interfaces manually if you do not
1060            understand what you are doing.  It is not needed in most cases. 
1061
1062            $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but
1063            they are obsolete.
1064
1065         2. $ipv6_enable is obsolete.  Use $ipv6_prefer and
1066            "inet6 accept_rtadv" keyword in ifconfig(8) instead.
1067
1068            If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and
1069            all configured interfaces have "inet6 accept_rtadv" in the
1070            $ifconfig_IF_ipv6.  These are for backward compatibility.
1071
1072         3. A new variable $ipv6_prefer has been added.  If NO, IPv6
1073            functionality of interfaces with no corresponding
1074            $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag,
1075            and the default address selection policy of ip6addrctl(8) 
1076            is the IPv4-preferred one (see rc.d/ip6addrctl for more details).
1077            Note that if you want to configure IPv6 functionality on the
1078            disabled interfaces after boot, first you need to clear the flag by
1079            using ifconfig(8) like:
1080
1081                 ifconfig em0 inet6 -ifdisabled
1082
1083            If YES, the default address selection policy is set as
1084            IPv6-preferred.
1085
1086            The default value of $ipv6_prefer is NO.
1087
1088         4. If your system need to receive Router Advertisement messages,
1089            define "inet6 accept_rtadv" in $ifconfig_IF_ipv6.  The rc(8)
1090            scripts automatically invoke rtsol(8) when the interface becomes
1091            UP.  The Router Advertisement messages are used for SLAAC
1092            (State-Less Address AutoConfiguration).
1093
1094 20090922:
1095         802.11s D3.03 support was committed. This is incompatible with the
1096         previous code, which was based on D3.0.
1097
1098 20090912:
1099         A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value
1100         of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to
1101         control whether accepting Router Advertisement messages or not.
1102         Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and
1103         a sysctl variable net.inet6.ip6.auto_linklocal is its default value.
1104         The ifconfig(8) utility now supports these flags.
1105
1106 20090910:
1107         ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for
1108         mount(8) and -a option for df(1) to see them.
1109
1110 20090825:
1111         The old tunable hw.bus.devctl_disable has been superseded by
1112         hw.bus.devctl_queue.  hw.bus.devctl_disable=1 in loader.conf should be
1113         replaced by hw.bus.devctl_queue=0.  The default for this new tunable
1114         is 1000.
1115
1116 20090813:
1117         Remove the option STOP_NMI.  The default action is now to use NMI only
1118         for KDB via the newly introduced function stop_cpus_hard() and
1119         maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64.
1120
1121 20090803:
1122         The stable/8 branch created in subversion.  This corresponds to the
1123         RELENG_8 branch in CVS.
1124
1125 20090719:
1126         Bump the shared library version numbers for all libraries that do not
1127         use symbol versioning as part of the 8.0-RELEASE cycle.  Bump
1128         __FreeBSD_version to 800105.
1129
1130 20090714:
1131         Due to changes in the implementation of virtual network stack support,
1132         all network-related kernel modules must be recompiled.  As this change
1133         breaks the ABI, bump __FreeBSD_version to 800104.
1134
1135 20090713:
1136         The TOE interface to the TCP syncache has been modified to remove
1137         struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack.
1138         The cxgb driver is the only TOE consumer affected by this change, and
1139         needs to be recompiled along with the kernel. As this change breaks
1140         the ABI, bump __FreeBSD_version to 800103.
1141
1142 20090712: 
1143         Padding has been added to struct tcpcb, sackhint and tcpstat in
1144         <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
1145         maintaining the ABI. However, this change breaks the ABI, so bump
1146         __FreeBSD_version to 800102. User space tools that rely on the size of
1147         any of these structs (e.g. sockstat) need to be recompiled.
1148
1149 20090630:
1150         The NFS_LEGACYRPC option has been removed along with the old kernel
1151         RPC implementation that this option selected. Kernel configurations
1152         may need to be adjusted.
1153
1154 20090629:
1155         The network interface device nodes at /dev/net/<interface> have been
1156         removed.  All ioctl operations can be performed the normal way using
1157         routing sockets.  The kqueue functionality can generally be replaced
1158         with routing sockets.
1159
1160 20090628:
1161         The documentation from the FreeBSD Documentation Project (Handbook,
1162         FAQ, etc.) is now installed via packages by sysinstall(8) and under
1163         the /usr/local/share/doc/freebsd directory instead of /usr/share/doc.
1164
1165 20090624:
1166         The ABI of various structures related to the SYSV IPC API have been
1167         changed.  As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel
1168         options now all require COMPAT_FREEBSD7.  Bump __FreeBSD_version to
1169         800100.
1170
1171 20090622:
1172         Layout of struct vnet has changed as routing related variables were
1173         moved to their own Vimage module. Modules need to be recompiled.  Bump
1174         __FreeBSD_version to 800099.
1175
1176 20090619:
1177         NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024
1178         respectively.  As long as no more than 16 groups per process are used,
1179         no changes should be visible.  When more than 16 groups are used, old
1180         binaries may fail if they call getgroups() or getgrouplist() with
1181         statically sized storage.  Recompiling will work around this, but
1182         applications should be modified to use dynamically allocated storage
1183         for group arrays as POSIX.1-2008 does not cap an implementation's
1184         number of supported groups at NGROUPS_MAX+1 as previous versions did.
1185
1186         NFS and portalfs mounts may also be affected as the list of groups is
1187         truncated to 16.  Users of NFS who use more than 16 groups, should
1188         take care that negative group permissions are not used on the exported
1189         file systems as they will not be reliable unless a GSSAPI based
1190         authentication method is used.
1191
1192 20090616: 
1193         The compiling option ADAPTIVE_LOCKMGRS has been introduced.  This
1194         option compiles in the support for adaptive spinning for lockmgrs
1195         which want to enable it.  The lockinit() function now accepts the flag
1196         LK_ADAPTIVE in order to make the lock object subject to adaptive
1197         spinning when both held in write and read mode.
1198
1199 20090613:
1200         The layout of the structure returned by IEEE80211_IOC_STA_INFO has
1201         changed.  User applications that use this ioctl need to be rebuilt.
1202
1203 20090611:
1204         The layout of struct thread has changed.  Kernel and modules need to
1205         be rebuilt.
1206
1207 20090608:
1208         The layout of structs ifnet, domain, protosw and vnet_net has changed.
1209         Kernel modules need to be rebuilt.  Bump __FreeBSD_version to 800097.
1210
1211 20090602:
1212         window(1) has been removed from the base system. It can now be
1213         installed from ports. The port is called misc/window.
1214
1215 20090601:
1216         The way we are storing and accessing `routing table' entries has
1217         changed. Programs reading the FIB, like netstat, need to be
1218         re-compiled.
1219
1220 20090601:
1221         A new netisr implementation has been added for FreeBSD 8.  Network
1222         file system modules, such as igmp, ipdivert, and others, should be
1223         rebuilt.
1224         Bump __FreeBSD_version to 800096.
1225
1226 20090530:
1227         Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no
1228         more valid.
1229
1230 20090530:
1231         Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
1232         Bump __FreeBSD_version to 800094.
1233
1234 20090529:
1235         Add mnt_xflag field to 'struct mount'.  File system modules need to be
1236         rebuilt.
1237         Bump __FreeBSD_version to 800093.
1238
1239 20090528:
1240         The compiling option ADAPTIVE_SX has been retired while it has been
1241         introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
1242         The KPI for sx_init_flags() changes as accepting flags:
1243         SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has
1244         been introduced in order to handle the reversed logic.
1245         Bump __FreeBSD_version to 800092.
1246
1247 20090527:
1248         Add support for hierarchical jails.  Remove global securelevel.
1249         Bump __FreeBSD_version to 800091.
1250
1251 20090523:
1252         The layout of struct vnet_net has changed, therefore modules
1253         need to be rebuilt.
1254         Bump __FreeBSD_version to 800090.
1255
1256 20090523:
1257         The newly imported zic(8) produces a new format in the output. Please
1258         run tzsetup(8) to install the newly created data to /etc/localtime.
1259
1260 20090520:
1261         The sysctl tree for the usb stack has renamed from hw.usb2.* to
1262         hw.usb.* and is now consistent again with previous releases.
1263
1264 20090520:
1265         802.11 monitor mode support was revised and driver api's were changed.
1266         Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead
1267         of DLT_IEEE802_11.  No user-visible data structures were changed but
1268         applications that use DLT_IEEE802_11 may require changes.
1269         Bump __FreeBSD_version to 800088.
1270
1271 20090430:
1272         The layout of the following structs has changed: sysctl_oid,
1273         socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet,
1274         vnet_inet6 and vnet_ipfw.  Most modules need to be rebuild or
1275         panics may be experienced.  World rebuild is required for
1276         correctly checking networking state from userland.
1277         Bump __FreeBSD_version to 800085.
1278
1279 20090429:
1280         MLDv2 and Source-Specific Multicast (SSM) have been merged
1281         to the IPv6 stack. VIMAGE hooks are in but not yet used.
1282         The implementation of SSM within FreeBSD's IPv6 stack closely
1283         follows the IPv4 implementation.
1284
1285         For kernel developers:
1286
1287         * The most important changes are that the ip6_output() and
1288           ip6_input() paths no longer take the IN6_MULTI_LOCK,
1289           and this lock has been downgraded to a non-recursive mutex.
1290
1291         * As with the changes to the IPv4 stack to support SSM, filtering
1292           of inbound multicast traffic must now be performed by transport
1293           protocols within the IPv6 stack. This does not apply to TCP and
1294           SCTP, however, it does apply to UDP in IPv6 and raw IPv6.
1295
1296         * The KPIs used by IPv6 multicast are similar to those used by
1297           the IPv4 stack, with the following differences:
1298            * im6o_mc_filter() is analogous to imo_multicast_filter().
1299            * The legacy KAME entry points in6_joingroup and in6_leavegroup()
1300              are shimmed to in6_mc_join() and in6_mc_leave() respectively.
1301            * IN6_LOOKUP_MULTI() has been deprecated and removed.
1302            * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs
1303              for MLDv1 have an additional 'timer' argument which is used to
1304              jitter the initial membership report for the solicited-node
1305              multicast membership on-link.
1306            * This is not strictly needed for MLDv2, which already jitters
1307              its report transmissions.  However, the 'timer' argument is
1308              preserved in case MLDv1 is active on the interface.
1309
1310         * The KAME linked-list based IPv6 membership implementation has
1311           been refactored to use a vector similar to that used by the IPv4
1312           stack.
1313           Code which maintains a list of its own multicast memberships
1314           internally, e.g. carp, has been updated to reflect the new
1315           semantics.
1316
1317         * There is a known Lock Order Reversal (LOR) due to in6_setscope()
1318           acquiring the IF_AFDATA_LOCK and being called within ip6_output().
1319           Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an
1320           implementation constraint which needs to be addressed in HEAD.
1321
1322         For application developers:
1323
1324         * The changes are broadly similar to those made for the IPv4
1325           stack.
1326
1327         * The use of IPv4 and IPv6 multicast socket options on the same
1328           socket, using mapped addresses, HAS NOT been tested or supported.
1329
1330         * There are a number of issues with the implementation of various
1331           IPv6 multicast APIs which need to be resolved in the API surface
1332           before the implementation is fully compatible with KAME userland
1333           use, and these are mostly to do with interface index treatment.
1334
1335         * The literature available discusses the use of either the delta / ASM
1336           API with setsockopt(2)/getsockopt(2), or the full-state / ASM API
1337           using setsourcefilter(3)/getsourcefilter(3). For more information
1338           please refer to RFC 3768, 'Socket Interface Extensions for
1339           Multicast Source Filters'.
1340
1341         * Applications which use the published RFC 3678 APIs should be fine.
1342
1343         For systems administrators:
1344
1345         * The mtest(8) utility has been refactored to support IPv6, in
1346           addition to IPv4. Interface addresses are no longer accepted
1347           as arguments, their names must be used instead. The utility
1348           will map the interface name to its first IPv4 address as
1349           returned by getifaddrs(3).
1350
1351         * The ifmcstat(8) utility has also been updated to print the MLDv2
1352           endpoint state and source filter lists via sysctl(3).
1353
1354         * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable
1355           loopback of IPv6 multicast datagrams by default; it defaults to 1
1356           to preserve the existing behaviour. Disabling multicast loopback is
1357           recommended for optimal system performance.
1358
1359         * The IPv6 MROUTING code has been changed to examine this sysctl
1360           instead of attempting to perform a group lookup before looping
1361           back forwarded datagrams.
1362
1363         Bump __FreeBSD_version to 800084.
1364
1365 20090422:
1366         Implement low-level Bluetooth HCI API.
1367         Bump __FreeBSD_version to 800083.
1368
1369 20090419:
1370         The layout of struct malloc_type, used by modules to register new
1371         memory allocation types, has changed.  Most modules will need to
1372         be rebuilt or panics may be experienced.
1373         Bump __FreeBSD_version to 800081.
1374
1375 20090415:
1376         Anticipate overflowing inp_flags - add inp_flags2.
1377         This changes most offsets in inpcb, so checking v4 connection
1378         state will require a world rebuild.
1379         Bump __FreeBSD_version to 800080.
1380
1381 20090415:
1382         Add an llentry to struct route and struct route_in6. Modules
1383         embedding a struct route will need to be recompiled.
1384         Bump __FreeBSD_version to 800079.
1385
1386 20090414:
1387         The size of rt_metrics_lite and by extension rtentry has changed.
1388         Networking administration apps will need to be recompiled.
1389         The route command now supports show as an alias for get, weighting
1390         of routes, sticky and nostick flags to alter the behavior of stateful
1391         load balancing.
1392         Bump __FreeBSD_version to 800078.
1393
1394 20090408:
1395         Do not use Giant for kbdmux(4) locking. This is wrong and
1396         apparently causing more problems than it solves. This will
1397         re-open the issue where interrupt handlers may race with
1398         kbdmux(4) in polling mode. Typical symptoms include (but
1399         not limited to) duplicated and/or missing characters when
1400         low level console functions (such as gets) are used while
1401         interrupts are enabled (for example geli password prompt,
1402         mountroot prompt etc.). Disabling kbdmux(4) may help.
1403
1404 20090407:
1405         The size of structs vnet_net, vnet_inet and vnet_ipfw has changed;
1406         kernel modules referencing any of the above need to be recompiled.
1407         Bump __FreeBSD_version to 800075.
1408
1409 20090320:
1410         GEOM_PART has become the default partition slicer for storage devices,
1411         replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It
1412         introduces some changes:
1413
1414         MSDOS/EBR: the devices created from MSDOS extended partition entries
1415         (EBR) can be named differently than with GEOM_MBR and are now symlinks
1416         to devices with offset-based names. fstabs may need to be modified.
1417
1418         BSD: the "geometry does not match label" warning is harmless in most
1419         cases but it points to problems in file system misalignment with
1420         disk geometry. The "c" partition is now implicit, covers the whole
1421         top-level drive and cannot be (mis)used by users.
1422
1423         General: Kernel dumps are now not allowed to be written to devices
1424         whose partition types indicate they are meant to be used for file
1425         systems (or, in case of MSDOS partitions, as something else than
1426         the "386BSD" type).
1427
1428         Most of these changes date approximately from 200812.
1429
1430 20090319:
1431         The uscanner(4) driver has been removed from the kernel. This follows
1432         Linux removing theirs in 2.6 and making libusb the default interface
1433         (supported by sane).
1434
1435 20090319:
1436         The multicast forwarding code has been cleaned up. netstat(1)
1437         only relies on KVM now for printing bandwidth upcall meters.
1438         The IPv4 and IPv6 modules are split into ip_mroute_mod and
1439         ip6_mroute_mod respectively. The config(5) options for statically
1440         compiling this code remain the same, i.e. 'options MROUTING'.
1441
1442 20090315:
1443         Support for the IFF_NEEDSGIANT network interface flag has been
1444         removed, which means that non-MPSAFE network device drivers are no
1445         longer supported.  In particular, if_ar, if_sr, and network device
1446         drivers from the old (legacy) USB stack can no longer be built or
1447         used.
1448
1449 20090313:
1450         POSIX.1 Native Language Support (NLS) has been enabled in libc and
1451         a bunch of new language catalog files have also been added.
1452         This means that some common libc messages are now localized and
1453         they depend on the LC_MESSAGES environmental variable.
1454
1455 20090313:
1456         The k8temp(4) driver has been renamed to amdtemp(4) since
1457         support for Family 10 and Family 11 CPU families was added.
1458
1459 20090309:
1460         IGMPv3 and Source-Specific Multicast (SSM) have been merged
1461         to the IPv4 stack. VIMAGE hooks are in but not yet used.
1462
1463         For kernel developers, the most important changes are that the
1464         ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(),
1465         and this lock has been downgraded to a non-recursive mutex.
1466
1467         Transport protocols (UDP, Raw IP) are now responsible for filtering
1468         inbound multicast traffic according to group membership and source
1469         filters. The imo_multicast_filter() KPI exists for this purpose.
1470         Transports which do not use multicast (SCTP, TCP) already reject
1471         multicast by default. Forwarding and receive performance may improve
1472         as a mutex acquisition is no longer needed in the ip_input()
1473         low-level input path.  in_addmulti() and in_delmulti() are shimmed
1474         to new KPIs which exist to support SSM in-kernel.
1475
1476         For application developers, it is recommended that loopback of
1477         multicast datagrams be disabled for best performance, as this
1478         will still cause the lock to be taken for each looped-back
1479         datagram transmission. The net.inet.ip.mcast.loop sysctl may
1480         be tuned to 0 to disable loopback by default; it defaults to 1
1481         to preserve the existing behaviour.
1482
1483         For systems administrators, to obtain best performance with
1484         multicast reception and multiple groups, it is always recommended
1485         that a card with a suitably precise hash filter is used. Hash
1486         collisions will still result in the lock being taken within the
1487         transport protocol input path to check group membership.
1488
1489         If deploying FreeBSD in an environment with IGMP snooping switches,
1490         it is recommended that the net.inet.igmp.sendlocal sysctl remain
1491         enabled; this forces 224.0.0.0/24 group membership to be announced
1492         via IGMP.
1493
1494         The size of 'struct igmpstat' has changed; netstat needs to be
1495         recompiled to reflect this.
1496         Bump __FreeBSD_version to 800070.
1497
1498 20090309:
1499         libusb20.so.1 is now installed as libusb.so.1 and the ports system
1500         updated to use it. This requires a buildworld/installworld in order to
1501         update the library and dependencies (usbconfig, etc). Its advisable to
1502         rebuild all ports which uses libusb. More specific directions are given
1503         in the ports collection UPDATING file. Any /etc/libmap.conf entries for
1504         libusb are no longer required and can be removed.
1505
1506 20090302:
1507         A workaround is committed to allow the creation of System V shared
1508         memory segment of size > 2 GB on the 64-bit architectures.
1509         Due to a limitation of the existing ABI, the shm_segsz member
1510         of the struct shmid_ds, returned by shmctl(IPC_STAT) call is
1511         wrong for large segments. Note that limits must be explicitly
1512         raised to allow such segments to be created.
1513
1514 20090301:
1515         The layout of struct ifnet has changed, requiring a rebuild of all
1516         network device driver modules.
1517
1518 20090227:
1519         The /dev handling for the new USB stack has changed, a
1520         buildworld/installworld is required for libusb20.
1521
1522 20090223:
1523         The new USB2 stack has now been permanently moved in and all kernel and
1524         module names reverted to their previous values (eg, usb, ehci, ohci,
1525         ums, ...).  The old usb stack can be compiled in by prefixing the name
1526         with the letter 'o', the old usb modules have been removed.
1527         Updating entry 20090216 for xorg and 20090215 for libmap may still
1528         apply.
1529
1530 20090217:
1531         The rc.conf(5) option if_up_delay has been renamed to
1532         defaultroute_delay to better reflect its purpose. If you have
1533         customized this setting in /etc/rc.conf you need to update it to
1534         use the new name.
1535
1536 20090216:
1537         xorg 7.4 wants to configure its input devices via hald which does not
1538         yet work with USB2. If the keyboard/mouse does not work in xorg then
1539         add
1540                 Option "AllowEmptyInput" "off"
1541         to your ServerLayout section.  This will cause X to use the configured
1542         kbd and mouse sections from your xorg.conf.
1543
1544 20090215:
1545         The GENERIC kernels for all architectures now default to the new USB2
1546         stack. No kernel config options or code have been removed so if a
1547         problem arises please report it and optionally revert to the old USB
1548         stack. If you are loading USB kernel modules or have a custom kernel
1549         that includes GENERIC then ensure that usb names are also changed over,
1550         eg uftdi -> usb2_serial_ftdi.
1551
1552         Older programs linked against the ports libusb 0.1 need to be
1553         redirected to the new stack's libusb20.  /etc/libmap.conf can
1554         be used for this:
1555                 # Map old usb library to new one for usb2 stack
1556                 libusb-0.1.so.8 libusb20.so.1
1557
1558 20090209:
1559         All USB ethernet devices now attach as interfaces under the name ueN
1560         (eg. ue0). This is to provide a predictable name as vendors often
1561         change usb chipsets in a product without notice.
1562
1563 20090203:
1564         The ichsmb(4) driver has been changed to require SMBus slave
1565         addresses be left-justified (xxxxxxx0b) rather than right-justified.
1566         All of the other SMBus controller drivers require left-justified
1567         slave addresses, so this change makes all the drivers provide the
1568         same interface.
1569
1570 20090201:
1571         INET6 statistics (struct ip6stat) was updated.
1572         netstat(1) needs to be recompiled.
1573
1574 20090119:
1575         NTFS has been removed from GENERIC kernel on amd64 to match
1576         GENERIC on i386. Should not cause any issues since mount_ntfs(8)
1577         will load ntfs.ko module automatically when NTFS support is
1578         actually needed, unless ntfs.ko is not installed or security
1579         level prohibits loading kernel modules. If either is the case,
1580         "options NTFS" has to be added into kernel config.
1581
1582 20090115:
1583         TCP Appropriate Byte Counting (RFC 3465) support added to kernel.
1584         New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to
1585         800061. User space tools that rely on the size of struct tcpcb in
1586         tcp_var.h (e.g. sockstat) need to be recompiled.
1587
1588 20081225:
1589         ng_tty(4) module updated to match the new TTY subsystem.
1590         Due to API change, user-level applications must be updated.
1591         New API support added to mpd5 CVS and expected to be present
1592         in next mpd5.3 release.
1593
1594 20081219:
1595         With __FreeBSD_version 800060 the makefs tool is part of
1596         the base system (it was a port).
1597
1598 20081216:
1599         The afdata and ifnet locks have been changed from mutexes to
1600         rwlocks, network modules will need to be re-compiled.
1601
1602 20081214:
1603         __FreeBSD_version 800059 incorporates the new arp-v2 rewrite.
1604         RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated.
1605         The new code reduced struct rtentry{} by 16 bytes on 32-bit
1606         architecture and 40 bytes on 64-bit architecture. The userland
1607         applications "arp" and "ndp" have been updated accordingly.
1608         The output from "netstat -r" shows only routing entries and
1609         none of the L2 information.
1610
1611 20081130:
1612         __FreeBSD_version 800057 marks the switchover from the
1613         binary ath hal to source code. Users must add the line:
1614
1615         options AH_SUPPORT_AR5416
1616
1617         to their kernel config files when specifying:
1618
1619         device  ath_hal
1620
1621         The ath_hal module no longer exists; the code is now compiled
1622         together with the driver in the ath module.  It is now
1623         possible to tailor chip support (i.e. reduce the set of chips
1624         and thereby the code size); consult ath_hal(4) for details.
1625
1626 20081121:
1627         __FreeBSD_version 800054 adds memory barriers to
1628         <machine/atomic.h>, new interfaces to ifnet to facilitate
1629         multiple hardware transmit queues for cards that support
1630         them, and a lock-less ring-buffer implementation to
1631         enable drivers to more efficiently manage queueing of
1632         packets.
1633
1634 20081117:
1635         A new version of ZFS (version 13) has been merged to -HEAD.
1636         This version has zpool attribute "listsnapshots" off by
1637         default, which means "zfs list" does not show snapshots,
1638         and is the same as Solaris behavior.
1639
1640 20081028:
1641         dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
1642
1643 20081009:
1644         The uhci, ohci, ehci and slhci USB Host controller drivers have
1645         been put into separate modules. If you load the usb module
1646         separately through loader.conf you will need to load the
1647         appropriate *hci module as well. E.g. for a UHCI-based USB 2.0
1648         controller add the following to loader.conf:
1649
1650                 uhci_load="YES"
1651                 ehci_load="YES"
1652
1653 20081009:
1654         The ABI used by the PMC toolset has changed.  Please keep
1655         userland (libpmc(3)) and the kernel module (hwpmc(4)) in
1656         sync.
1657
1658 20081009:
1659         atapci kernel module now includes only generic PCI ATA
1660         driver. AHCI driver moved to ataahci kernel module.
1661         All vendor-specific code moved into separate kernel modules:
1662         ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek,
1663         atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron,
1664         atamarvell, atamicron, atanational, atanetcell, atanvidia,
1665         atapromise, ataserverworks, atasiliconimage, atasis, atavia
1666
1667 20080820:
1668         The TTY subsystem of the kernel has been replaced by a new
1669         implementation, which provides better scalability and an
1670         improved driver model. Most common drivers have been migrated to
1671         the new TTY subsystem, while others have not. The following
1672         drivers have not yet been ported to the new TTY layer:
1673
1674         PCI/ISA:
1675                 cy, digi, rc, rp, sio
1676
1677         USB:
1678                 ubser, ucycom
1679
1680         Line disciplines:
1681                 ng_h4, ng_tty, ppp, sl, snp
1682
1683         Adding these drivers to your kernel configuration file shall
1684         cause compilation to fail.
1685
1686 20080818:
1687         ntpd has been upgraded to 4.2.4p5.
1688
1689 20080801:
1690         OpenSSH has been upgraded to 5.1p1.
1691
1692         For many years, FreeBSD's version of OpenSSH preferred DSA
1693         over RSA for host and user authentication keys.  With this
1694         upgrade, we've switched to the vendor's default of RSA over
1695         DSA.  This may cause upgraded clients to warn about unknown
1696         host keys even for previously known hosts.  Users should
1697         follow the usual procedure for verifying host keys before
1698         accepting the RSA key.
1699
1700         This can be circumvented by setting the "HostKeyAlgorithms"
1701         option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh
1702         command line.
1703
1704         Please note that the sequence of keys offered for
1705         authentication has been changed as well.  You may want to
1706         specify IdentityFile in a different order to revert this
1707         behavior.
1708
1709 20080713:
1710         The sio(4) driver has been removed from the i386 and amd64
1711         kernel configuration files. This means uart(4) is now the
1712         default serial port driver on those platforms as well.
1713
1714         To prevent collisions with the sio(4) driver, the uart(4) driver
1715         uses different names for its device nodes. This means the
1716         onboard serial port will now most likely be called "ttyu0"
1717         instead of "ttyd0". You may need to reconfigure applications to
1718         use the new device names.
1719
1720         When using the serial port as a boot console, be sure to update
1721         /boot/device.hints and /etc/ttys before booting the new kernel.
1722         If you forget to do so, you can still manually specify the hints
1723         at the loader prompt:
1724
1725                 set hint.uart.0.at="isa"
1726                 set hint.uart.0.port="0x3F8"
1727                 set hint.uart.0.flags="0x10"
1728                 set hint.uart.0.irq="4"
1729                 boot -s
1730
1731 20080609:
1732         The gpt(8) utility has been removed. Use gpart(8) to partition
1733         disks instead.
1734
1735 20080603:
1736         The version that Linuxulator emulates was changed from 2.4.2
1737         to 2.6.16. If you experience any problems with Linux binaries
1738         please try to set sysctl compat.linux.osrelease to 2.4.2 and
1739         if it fixes the problem contact emulation mailing list.
1740
1741 20080525:
1742         ISDN4BSD (I4B) was removed from the src tree. You may need to
1743         update a your kernel configuration and remove relevant entries.
1744
1745 20080509:
1746         I have checked in code to support multiple routing tables.
1747         See the man pages setfib(1) and setfib(2).
1748         This is a hopefully backwards compatible version,
1749         but to make use of it you need to compile your kernel
1750         with options ROUTETABLES=2 (or more up to 16).
1751
1752 20080420:
1753         The 802.11 wireless support was redone to enable multi-bss
1754         operation on devices that are capable.  The underlying device
1755         is no longer used directly but instead wlanX devices are
1756         cloned with ifconfig.  This requires changes to rc.conf files.
1757         For example, change:
1758                 ifconfig_ath0="WPA DHCP"
1759         to
1760                 wlans_ath0=wlan0
1761                 ifconfig_wlan0="WPA DHCP"
1762         see rc.conf(5) for more details.  In addition, mergemaster of
1763         /etc/rc.d is highly recommended.  Simultaneous update of userland
1764         and kernel wouldn't hurt either.
1765
1766         As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
1767         modules were merged into the base wlan module.  All references
1768         to these modules (e.g. in kernel config files) must be removed.
1769
1770 20080408:
1771         psm(4) has gained write(2) support in native operation level.
1772         Arbitrary commands can be written to /dev/psm%d and status can
1773         be read back from it.  Therefore, an application is responsible
1774         for status validation and error recovery.  It is a no-op in
1775         other operation levels.
1776
1777 20080312:
1778         Support for KSE threading has been removed from the kernel.  To
1779         run legacy applications linked against KSE libmap.conf may
1780         be used.  The following libmap.conf may be used to ensure
1781         compatibility with any prior release:
1782
1783         libpthread.so.1 libthr.so.1
1784         libpthread.so.2 libthr.so.2
1785         libkse.so.3 libthr.so.3
1786
1787 20080301:
1788         The layout of struct vmspace has changed. This affects libkvm
1789         and any executables that link against libkvm and use the
1790         kvm_getprocs() function. In particular, but not exclusively,
1791         it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1).
1792         The effects are minimal, but it's advisable to upgrade world
1793         nonetheless.
1794
1795 20080229:
1796         The latest em driver no longer has support in it for the
1797         82575 adapter, this is now moved to the igb driver. The
1798         split was done to make new features that are incompatible
1799         with older hardware easier to do.
1800
1801 20080220:
1802         The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4),
1803         likewise the kernel option is now GEOM_LINUX_LVM.
1804
1805 20080211:
1806         The default NFS mount mode has changed from UDP to TCP for
1807         increased reliability.  If you rely on (insecurely) NFS
1808         mounting across a firewall you may need to update your
1809         firewall rules.
1810
1811 20080208:
1812         Belatedly note the addition of m_collapse for compacting
1813         mbuf chains.
1814
1815 20080126:
1816         The fts(3) structures have been changed to use adequate
1817         integer types for their members and so to be able to cope
1818         with huge file trees.  The old fts(3) ABI is preserved
1819         through symbol versioning in libc, so third-party binaries
1820         using fts(3) should still work, although they will not take
1821         advantage of the extended types.  At the same time, some
1822         third-party software might fail to build after this change
1823         due to unportable assumptions made in its source code about
1824         fts(3) structure members.  Such software should be fixed
1825         by its vendor or, in the worst case, in the ports tree.
1826         FreeBSD_version 800015 marks this change for the unlikely
1827         case that a portable fix is impossible.
1828
1829 20080123:
1830         To upgrade to -current after this date, you must be running
1831         FreeBSD not older than 6.0-RELEASE.  Upgrading to -current
1832         from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems.
1833
1834 20071128:
1835         The ADAPTIVE_GIANT kernel option has been retired because its
1836         functionality is the default now.
1837
1838 20071118:
1839         The AT keyboard emulation of sunkbd(4) has been turned on
1840         by default. In order to make the special symbols of the Sun
1841         keyboards driven by sunkbd(4) work under X these now have
1842         to be configured the same way as Sun USB keyboards driven
1843         by ukbd(4) (which also does AT keyboard emulation), f.e.:
1844
1845         Option  "XkbLayout" "us"
1846         Option  "XkbRules" "xorg"
1847         Option  "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us"
1848
1849 20071024:
1850         It has been decided that it is desirable to provide ABI
1851         backwards compatibility to the FreeBSD 4/5/6 versions of the
1852         PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was
1853         broken with the introduction of PCI domain support (see the
1854         20070930 entry). Unfortunately, this required the ABI of
1855         PCIOCGETCONF to be broken again in order to be able to
1856         provide backwards compatibility to the old version of that
1857         IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled
1858         again. As for prominent ports this affects neither pciutils
1859         nor xorg-server this time, the hal port needs to be rebuilt
1860         however.
1861
1862 20071020:
1863         The misnamed kthread_create() and friends have been renamed
1864         to kproc_create() etc. Many of the callers already
1865         used kproc_start()..
1866         I will return kthread_create() and friends in a while
1867         with implementations that actually create threads, not procs.
1868         Renaming corresponds with version 800002.
1869
1870 20071010:
1871         RELENG_7 branched.
1872
1873 COMMON ITEMS:
1874
1875         General Notes
1876         -------------
1877         Avoid using make -j when upgrading.  While generally safe, there are
1878         sometimes problems using -j to upgrade.  If your upgrade fails with
1879         -j, please try again without -j.  From time to time in the past there
1880         have been problems using -j with buildworld and/or installworld.  This
1881         is especially true when upgrading between "distant" versions (eg one
1882         that cross a major release boundary or several minor releases, or when
1883         several months have passed on the -current branch).
1884
1885         Sometimes, obscure build problems are the result of environment
1886         poisoning.  This can happen because the make utility reads its
1887         environment when searching for values for global variables.  To run
1888         your build attempts in an "environmental clean room", prefix all make
1889         commands with 'env -i '.  See the env(1) manual page for more details.
1890
1891         When upgrading from one major version to another it is generally best
1892         to upgrade to the latest code in the currently installed branch first,
1893         then do an upgrade to the new branch. This is the best-tested upgrade
1894         path, and has the highest probability of being successful.  Please try
1895         this approach before reporting problems with a major version upgrade.
1896
1897         When upgrading a live system, having a root shell around before
1898         installing anything can help undo problems. Not having a root shell
1899         around can lead to problems if pam has changed too much from your
1900         starting point to allow continued authentication after the upgrade.
1901
1902         ZFS notes
1903         ---------
1904         When upgrading the boot ZFS pool to a new version, always follow
1905         these two steps:
1906
1907         1.) recompile and reinstall the ZFS boot loader and boot block
1908         (this is part of "make buildworld" and "make installworld")
1909
1910         2.) update the ZFS boot block on your boot drive
1911
1912         The following example updates the ZFS boot block on the first
1913         partition (freebsd-boot) of a GPT partitioned drive ad0:
1914         "gpart bootcode -p /boot/gptzfsboot -i 1 ad0"
1915
1916         Non-boot pools do not need these updates.
1917
1918         To build a kernel
1919         -----------------
1920         If you are updating from a prior version of FreeBSD (even one just
1921         a few days old), you should follow this procedure.  It is the most
1922         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1923
1924         make kernel-toolchain
1925         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1926         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1927
1928         To test a kernel once
1929         ---------------------
1930         If you just want to boot a kernel once (because you are not sure
1931         if it works, or if you want to boot a known bad kernel to provide
1932         debugging information) run
1933         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1934         nextboot -k testkernel
1935
1936         To just build a kernel when you know that it won't mess you up
1937         --------------------------------------------------------------
1938         This assumes you are already running a CURRENT system.  Replace
1939         ${arch} with the architecture of your machine (e.g. "i386",
1940         "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1941
1942         cd src/sys/${arch}/conf
1943         config KERNEL_NAME_HERE
1944         cd ../compile/KERNEL_NAME_HERE
1945         make depend
1946         make
1947         make install
1948
1949         If this fails, go to the "To build a kernel" section.
1950
1951         To rebuild everything and install it on the current system.
1952         -----------------------------------------------------------
1953         # Note: sometimes if you are running current you gotta do more than
1954         # is listed here if you are upgrading from a really old current.
1955
1956         <make sure you have good level 0 dumps>
1957         make buildworld
1958         make kernel KERNCONF=YOUR_KERNEL_HERE
1959                                                         [1]
1960         <reboot in single user>                         [3]
1961         mergemaster -p                                  [5]
1962         make installworld
1963         mergemaster -i                                  [4]
1964         make delete-old                                 [6]
1965         <reboot>
1966
1967         To cross-install current onto a separate partition
1968         --------------------------------------------------
1969         # In this approach we use a separate partition to hold
1970         # current's root, 'usr', and 'var' directories.   A partition
1971         # holding "/", "/usr" and "/var" should be about 2GB in
1972         # size.
1973
1974         <make sure you have good level 0 dumps>
1975         <boot into -stable>
1976         make buildworld
1977         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1978         <maybe newfs current's root partition>
1979         <mount current's root partition on directory ${CURRENT_ROOT}>
1980         make installworld DESTDIR=${CURRENT_ROOT}
1981         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1982         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1983         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
1984         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1985         <reboot into current>
1986         <do a "native" rebuild/install as described in the previous section>
1987         <maybe install compatibility libraries from ports/misc/compat*>
1988         <reboot>
1989
1990
1991         To upgrade in-place from stable to current
1992         ----------------------------------------------
1993         <make sure you have good level 0 dumps>
1994         make buildworld                                 [9]
1995         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
1996                                                         [1]
1997         <reboot in single user>                         [3]
1998         mergemaster -p                                  [5]
1999         make installworld
2000         mergemaster -i                                  [4]
2001         make delete-old                                 [6]
2002         <reboot>
2003
2004         Make sure that you've read the UPDATING file to understand the
2005         tweaks to various things you need.  At this point in the life
2006         cycle of current, things change often and you are on your own
2007         to cope.  The defaults can also change, so please read ALL of
2008         the UPDATING entries.
2009
2010         Also, if you are tracking -current, you must be subscribed to
2011         freebsd-current@freebsd.org.  Make sure that before you update
2012         your sources that you have read and understood all the recent
2013         messages there.  If in doubt, please track -stable which has
2014         much fewer pitfalls.
2015
2016         [1] If you have third party modules, such as vmware, you
2017         should disable them at this point so they don't crash your
2018         system on reboot.
2019
2020         [3] From the bootblocks, boot -s, and then do
2021                 fsck -p
2022                 mount -u /
2023                 mount -a
2024                 cd src
2025                 adjkerntz -i            # if CMOS is wall time
2026         Also, when doing a major release upgrade, it is required that
2027         you boot into single user mode to do the installworld.
2028
2029         [4] Note: This step is non-optional.  Failure to do this step
2030         can result in a significant reduction in the functionality of the
2031         system.  Attempting to do it by hand is not recommended and those
2032         that pursue this avenue should read this file carefully, as well
2033         as the archives of freebsd-current and freebsd-hackers mailing lists
2034         for potential gotchas.  The -U option is also useful to consider.
2035         See mergemaster(8) for more information.
2036
2037         [5] Usually this step is a noop.  However, from time to time
2038         you may need to do this if you get unknown user in the following
2039         step.  It never hurts to do it all the time.  You may need to
2040         install a new mergemaster (cd src/usr.sbin/mergemaster && make
2041         install) after the buildworld before this step if you last updated
2042         from current before 20130425 or from -stable before 20130430.
2043
2044         [6] This only deletes old files and directories. Old libraries
2045         can be deleted by "make delete-old-libs", but you have to make
2046         sure that no program is using those libraries anymore.
2047
2048         [8] In order to have a kernel that can run the 4.x binaries needed to
2049         do an installworld, you must include the COMPAT_FREEBSD4 option in
2050         your kernel.  Failure to do so may leave you with a system that is
2051         hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
2052         required to run the 5.x binaries on more recent kernels.  And so on
2053         for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
2054
2055         Make sure that you merge any new devices from GENERIC since the
2056         last time you updated your kernel config file.
2057
2058         [9] When checking out sources, you must include the -P flag to have
2059         cvs prune empty directories.
2060
2061         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
2062         "?=" instead of the "=" assignment operator, so that buildworld can
2063         override the CPUTYPE if it needs to.
2064
2065         MAKEOBJDIRPREFIX must be defined in an environment variable, and
2066         not on the command line, or in /etc/make.conf.  buildworld will
2067         warn if it is improperly defined.
2068 FORMAT:
2069
2070 This file contains a list, in reverse chronological order, of major
2071 breakages in tracking -current.  It is not guaranteed to be a complete
2072 list of such breakages, and only contains entries since October 10, 2007.
2073 If you need to see UPDATING entries from before that date, you will need
2074 to fetch an UPDATING file from an older FreeBSD release.
2075
2076 Copyright information:
2077
2078 Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
2079
2080 Redistribution, publication, translation and use, with or without
2081 modification, in full or in part, in any form or format of this
2082 document are permitted without further permission from the author.
2083
2084 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
2085 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2086 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2087 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
2088 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2089 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
2090 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2091 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
2092 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
2093 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
2094 POSSIBILITY OF SUCH DAMAGE.
2095
2096 Contact Warner Losh if you have any questions about your use of
2097 this document.
2098
2099 $FreeBSD$