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