]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
Integrate tools/regression/acltools into tests/sys/acl
[FreeBSD/FreeBSD.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 and WITH_GCC to bootstrap to
16 the tip of head, and then rebuild without this option. The bootstrap process from
17 older version of current across the gcc/clang cutover is a bit fragile.
18
19 NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW:
20         FreeBSD 11.x has many debugging features turned on, in both the kernel
21         and userland.  These features attempt to detect incorrect use of
22         system primitives, and encourage loud failure through extra sanity
23         checking and fail stop semantics.  They also substantially impact
24         system performance.  If you want to do performance measurement,
25         benchmarking, and optimization, you'll want to turn them off.  This
26         includes various WITNESS- related kernel options, INVARIANTS, malloc
27         debugging flags in userland, and various verbose features in the
28         kernel.  Many developers choose to disable these features on build
29         machines to maximize performance.  (To completely disable malloc
30         debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
31         disable the most expensive debugging functionality run
32         "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
33
34 20151011:
35         Compatibility shims for legacy ATA device names have been removed.
36         It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
37         and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
38         environment variables, /dev/ad* and /dev/ar* symbolic links.
39
40 20151006:
41         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
42         Please see the 20141231 entry below for information about prerequisites
43         and upgrading, if you are not already using clang 3.5.0 or higher.
44
45 20150924:
46         Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
47         and renamed from .symbols to .debug. This reduces the size requirements
48         on the boot partition or file system and provides consistency with
49         userland debug files.
50
51         When using the supported kernel installation method the
52         /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
53         as is done with /boot/kernel.
54
55         Developers wishing to maintain the historical behavior of installing
56         debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
57
58 20150827:
59         The wireless drivers had undergone changes that remove the 'parent
60         interface' from the ifconfig -l output. The rc.d network scripts
61         used to check presence of a parent interface in the list, so old
62         scripts would fail to start wireless networking. Thus, etcupdate(3)
63         or mergemaster(8) run is required after kernel update, to update your
64         rc.d scripts in /etc.
65
66 20150827:
67         pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
68         These configurations are now automatically interpreted as
69         'scrub fragment reassemble'.
70
71 20150817:
72         Kernel-loadable modules for the random(4) device are back. To use
73         them, the kernel must have
74
75         device  random
76         options RANDOM_LOADABLE
77
78         kldload(8) can then be used to load random_fortuna.ko
79         or random_yarrow.ko. Please note that due to the indirect
80         function calls that the loadable modules need to provide,
81         the build-in variants will be slightly more efficient.
82
83         The random(4) kernel option RANDOM_DUMMY has been retired due to
84         unpopularity. It was not all that useful anyway.
85
86 20150813:
87         The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
88         Control over building the ELF Tool Chain tools is now provided by
89         the WITHOUT_TOOLCHAIN knob.
90
91 20150810:
92         The polarity of Pulse Per Second (PPS) capture events with the
93         uart(4) driver has been corrected.  Prior to this change the PPS
94         "assert" event corresponded to the trailing edge of a positive PPS
95         pulse and the "clear" event was the leading edge of the next pulse.
96
97         As the width of a PPS pulse in a typical GPS receiver is on the
98         order of 1 millisecond, most users will not notice any significant
99         difference with this change.
100
101         Anyone who has compensated for the historical polarity reversal by
102         configuring a negative offset equal to the pulse width will need to
103         remove that workaround.
104
105 20150809:
106         The default group assigned to /dev/dri entries has been changed
107         from 'wheel' to 'video' with the id of '44'. If you want to have
108         access to the dri devices please add yourself to the video group
109         with:
110
111         # pw groupmod video -m $USER
112
113 20150806:
114         The menu.rc and loader.rc files will now be replaced during 
115         upgrades. Please migrate local changes to menu.rc.local and
116         loader.rc.local instead.
117
118 20150805:
119         GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
120         strings and strip have been removed. The src.conf(5) knob
121         WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
122
123 20150728:
124         As ZFS requires more kernel stack pages than is the default on some
125         architectures e.g. i386, it now warns if KSTACK_PAGES is less than
126         ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
127
128         Please consider using 'options KSTACK_PAGES=X' where X is greater
129         than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
130
131 20150706:
132         sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
133         and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
134         default, i.e., they will not contain "::".  For example, instead
135         of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
136         to have a more specific match, such as different map entries for
137         IPv6:0:0 vs IPv6:0.  This change requires that configuration
138         data (including maps, files, classes, custom ruleset, etc.) must
139         use the same format, so make certain such configuration data is
140         upgrading.  As a very simple check search for patterns like
141         'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
142         behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
143         the cf option UseCompressedIPv6Addresses.
144
145 20150630:
146         The default kernel entropy-processing algorithm is now
147         Fortuna, replacing Yarrow.
148
149         Assuming you have 'device random' in your kernel config
150         file, the configurations allow a kernel option to override
151         this default. You may choose *ONE* of:
152
153         options RANDOM_YARROW   # Legacy /dev/random algorithm.
154         options RANDOM_DUMMY    # Blocking-only driver.
155
156         If you have neither, you get Fortuna.  For most people,
157         read no further, Fortuna will give a /dev/random that works
158         like it always used to, and the difference will be irrelevant.
159
160         If you remove 'device random', you get *NO* kernel-processed
161         entopy at all. This may be acceptable to folks building
162         embedded systems, but has complications. Carry on reading,
163         and it is assumed you know what you need.
164
165         *PLEASE* read random(4) and random(9) if you are in the
166         habit of tweeking kernel configs, and/or if you are a member
167         of the embedded community, wanting specific and not-usual
168         behaviour from your security subsystems.
169
170         NOTE!! If you use RANDOM_DUMMY and/or have no 'device
171         random', you will NOT have a functioning /dev/random, and
172         many cryptographic features will not work, including SSH.
173         You may also find strange behaviour from the random(3) set
174         of library functions, in particular sranddev(3), srandomdev(3)
175         and arc4random(3). The reason for this is that the KERN_ARND
176         sysctl only returns entropy if it thinks it has some to
177         share, and with RANDOM_DUMMY or no 'device random' this
178         will never happen.
179
180 20150623:
181         An additional fix for the issue described in the 20150614 sendmail
182         entry below has been been committed in revision 284717.
183
184 20150616:
185         FreeBSD's old make (fmake) has been removed from the system. It is
186         available as the devel/fmake port or via pkg install fmake.
187
188 20150615:
189         The fix for the issue described in the 20150614 sendmail entry
190         below has been been committed in revision 284436.  The work
191         around described in that entry is no longer needed unless the
192         default setting is overridden by a confDH_PARAMETERS configuration
193         setting of '5' or pointing to a 512 bit DH parameter file.
194
195 20150614:
196         ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
197         atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
198         and devel/kyua to version 0.20+ and adjust any calling code to work
199         with Kyuafile and kyua.
200
201 20150614:
202         The import of openssl to address the FreeBSD-SA-15:10.openssl
203         security advisory includes a change which rejects handshakes
204         with DH parameters below 768 bits.  sendmail releases prior
205         to 8.15.2 (not yet released), defaulted to a 512 bit
206         DH parameter setting for client connections.  To work around
207         this interoperability, sendmail can be configured to use a
208         2048 bit DH parameter by:
209
210         1. Edit /etc/mail/`hostname`.mc
211         2. If a setting for confDH_PARAMETERS does not exist or
212            exists and is set to a string beginning with '5',
213            replace it with '2'.
214         3. If a setting for confDH_PARAMETERS exists and is set to
215            a file path, create a new file with:
216                 openssl dhparam -out /path/to/file 2048
217         4. Rebuild the .cf file:
218                 cd /etc/mail/; make; make install
219         5. Restart sendmail:
220                 cd /etc/mail/; make restart
221
222         A sendmail patch is coming, at which time this file will be
223         updated.
224
225 20150604:
226         Generation of legacy formatted entries have been disabled by default
227         in pwd_mkdb(8), as all base system consumers of the legacy formatted
228         entries were converted to use the new format by default when the new,
229         machine independent format have been added and supported since FreeBSD
230         5.x.
231
232         Please see the pwd_mkdb(8) manual page for further details.
233
234 20150525:
235         Clang and llvm have been upgraded to 3.6.1 release.  Please see the
236         20141231 entry below for information about prerequisites and upgrading,
237         if you are not already using 3.5.0 or higher.
238
239 20150521:
240         TI platform code switched to using vendor DTS files and this update
241         may break existing systems running on Beaglebone, Beaglebone Black,
242         and Pandaboard:
243
244         - dtb files should be regenerated/reinstalled. Filenames are the
245           same but content is different now
246         - GPIO addressing was changed, now each GPIO bank (32 pins per bank)
247           has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
248           addressing scheme is now pin 25 on /dev/gpioc3.
249         - Pandaboard: /etc/ttys should be updated, serial console device is
250           now /dev/ttyu2, not /dev/ttyu0
251
252 20150501:
253         soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
254         If you need the GNU extension from groff soelim(1), install groff
255         from package: pkg install groff, or via ports: textproc/groff.
256
257 20150423:
258         chmod, chflags, chown and chgrp now affect symlinks in -R mode as
259         defined in symlink(7); previously symlinks were silently ignored.
260
261 20150415:
262         The const qualifier has been removed from iconv(3) to comply with
263         POSIX.  The ports tree is aware of this from r384038 onwards.
264
265 20150416:
266         Libraries specified by LIBADD in Makefiles must have a corresponding
267         DPADD_<lib> variable to ensure correct dependencies.  This is now
268         enforced in src.libnames.mk.
269
270 20150324:
271         From legacy ata(4) driver was removed support for SATA controllers
272         supported by more functional drivers ahci(4), siis(4) and mvs(4).
273         Kernel modules ataahci and ataadaptec were removed completely,
274         replaced by ahci and mvs modules respectively.
275
276 20150315:
277         Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
278         the 20141231 entry below for information about prerequisites and
279         upgrading, if you are not already using 3.5.0 or higher.
280
281 20150307:
282         The 32-bit PowerPC kernel has been changed to a position-independent
283         executable. This can only be booted with a version of loader(8)
284         newer than January 31, 2015, so make sure to update both world and
285         kernel before rebooting.
286
287 20150217:
288         If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
289         but before r278950, the RNG was not seeded properly.  Immediately
290         upgrade the kernel to r278950 or later and regenerate any keys (e.g.
291         ssh keys or openssl keys) that were generated w/ a kernel from that
292         range.  This does not affect programs that directly used /dev/random
293         or /dev/urandom.  All userland uses of arc4random(3) are affected.
294
295 20150210:
296         The autofs(4) ABI was changed in order to restore binary compatibility
297         with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
298         with the new kernel.
299
300 20150131:
301         The powerpc64 kernel has been changed to a position-independent
302         executable. This can only be booted with a new version of loader(8),
303         so make sure to update both world and kernel before rebooting.
304
305 20150118:
306         Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
307         only release, no new features have been added.  Please see the 20141231
308         entry below for information about prerequisites and upgrading, if you
309         are not already using 3.5.0.
310
311 20150107:
312         ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
313         taken from the ELF Tool Chain project rather than GNU binutils. They
314         should be drop-in replacements, with the addition of arm64 support.
315         The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
316         binutils tools, if necessary. See 20150805 for updated information.
317
318 20150105:
319         The default Unbound configuration now enables remote control
320         using a local socket.  Users who have already enabled the
321         local_unbound service should regenerate their configuration
322         by running "service local_unbound setup" as root.
323
324 20150102:
325         The GNU texinfo and GNU info pages have been removed.
326         To be able to view GNU info pages please install texinfo from ports.
327
328 20141231:
329         Clang, llvm and lldb have been upgraded to 3.5.0 release.
330
331         As of this release, a prerequisite for building clang, llvm and lldb is
332         a C++11 capable compiler and C++11 standard library.  This means that to
333         be able to successfully build the cross-tools stage of buildworld, with
334         clang as the bootstrap compiler, your system compiler or cross compiler
335         should either be clang 3.3 or later, or gcc 4.8 or later, and your
336         system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
337         later.
338
339         On any standard FreeBSD 10.x or 11.x installation, where clang and
340         libc++ are on by default (that is, on x86 or arm), this should work out
341         of the box.
342
343         On 9.x installations where clang is enabled by default, e.g. on x86 and
344         powerpc, libc++ will not be enabled by default, so libc++ should be
345         built (with clang) and installed first.  If both clang and libc++ are
346         missing, build clang first, then use it to build libc++.
347
348         On 8.x and earlier installations, upgrade to 9.x first, and then follow
349         the instructions for 9.x above.
350
351         Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
352         default, and do not build clang.
353
354         Many embedded systems are resource constrained, and will not be able to
355         build clang in a reasonable time, or in some cases at all.  In those
356         cases, cross building bootable systems on amd64 is a workaround.
357
358         This new version of clang introduces a number of new warnings, of which
359         the following are most likely to appear:
360
361         -Wabsolute-value
362
363         This warns in two cases, for both C and C++:
364         * When the code is trying to take the absolute value of an unsigned
365           quantity, which is effectively a no-op, and almost never what was
366           intended.  The code should be fixed, if at all possible.  If you are
367           sure that the unsigned quantity can be safely cast to signed, without
368           loss of information or undefined behavior, you can add an explicit
369           cast, or disable the warning.
370
371         * When the code is trying to take an absolute value, but the called
372           abs() variant is for the wrong type, which can lead to truncation.
373           If you want to disable the warning instead of fixing the code, please
374           make sure that truncation will not occur, or it might lead to unwanted
375           side-effects.
376
377         -Wtautological-undefined-compare and
378         -Wundefined-bool-conversion
379
380         These warn when C++ code is trying to compare 'this' against NULL, while
381         'this' should never be NULL in well-defined C++ code.  However, there is
382         some legacy (pre C++11) code out there, which actively abuses this
383         feature, which was less strictly defined in previous C++ versions.
384
385         Squid and openjdk do this, for example.  The warning can be turned off
386         for C++98 and earlier, but compiling the code in C++11 mode might result
387         in unexpected behavior; for example, the parts of the program that are
388         unreachable could be optimized away.
389
390 20141222:
391         The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
392         kernel sources have been removed. The .h files remain, since some
393         utilities include them. This will need to be fixed later.
394         If "mount -t oldnfs ..." is attempted, it will fail.
395         If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
396         the utilities will report errors.
397
398 20141121:
399         The handling of LOCAL_LIB_DIRS has been altered to skip addition of
400         directories to top level SUBDIR variable when their parent
401         directory is included in LOCAL_DIRS.  Users with build systems with
402         such hierarchies and without SUBDIR entries in the parent
403         directory Makefiles should add them or add the directories to
404         LOCAL_DIRS.
405
406 20141109:
407         faith(4) and faithd(8) have been removed from the base system. Faith
408         has been obsolete for a very long time.
409
410 20141104:
411         vt(4), the new console driver, is enabled by default. It brings
412         support for Unicode and double-width characters, as well as
413         support for UEFI and integration with the KMS kernel video
414         drivers.
415
416         You may need to update your console settings in /etc/rc.conf,
417         most probably the keymap. During boot, /etc/rc.d/syscons will
418         indicate what you need to do.
419
420         vt(4) still has issues and lacks some features compared to
421         syscons(4). See the wiki for up-to-date information:
422           https://wiki.freebsd.org/Newcons
423
424         If you want to keep using syscons(4), you can do so by adding
425         the following line to /boot/loader.conf:
426           kern.vty=sc
427
428 20141102:
429         pjdfstest has been integrated into kyua as an opt-in test suite.
430         Please see share/doc/pjdfstest/README for more details on how to
431         execute it.
432
433 20141009:
434         gperf has been removed from the base system for architectures
435         that use clang. Ports that require gperf will obtain it from the
436         devel/gperf port.
437
438 20140923:
439         pjdfstest has been moved from tools/regression/pjdfstest to
440         contrib/pjdfstest .
441
442 20140922:
443         At svn r271982, The default linux compat kernel ABI has been adjusted
444         to 2.6.18 in support of the linux-c6 compat ports infrastructure
445         update.  If you wish to continue using the linux-f10 compat ports,
446         add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
447         encouraged to update their linux-compat packages to linux-c6 during
448         their next update cycle.
449
450 20140729:
451         The ofwfb driver, used to provide a graphics console on PowerPC when
452         using vt(4), no longer allows mmap() of all physical memory. This
453         will prevent Xorg on PowerPC with some ATI graphics cards from
454         initializing properly unless x11-servers/xorg-server is updated to
455         1.12.4_8 or newer.
456
457 20140723:
458         The xdev targets have been converted to using TARGET and
459         TARGET_ARCH instead of XDEV and XDEV_ARCH.
460
461 20140719:
462         The default unbound configuration has been modified to address
463         issues with reverse lookups on networks that use private
464         address ranges.  If you use the local_unbound service, run
465         "service local_unbound setup" as root to regenerate your
466         configuration, then "service local_unbound reload" to load the
467         new configuration.
468
469 20140709:
470         The GNU texinfo and GNU info pages are not built and installed
471         anymore, WITH_INFO knob has been added to allow to built and install
472         them again.
473         UPDATE: see 20150102 entry on texinfo's removal
474
475 20140708:
476         The GNU readline library is now an INTERNALLIB - that is, it is
477         statically linked into consumers (GDB and variants) in the base
478         system, and the shared library is no longer installed.  The
479         devel/readline port is available for third party software that
480         requires readline.
481
482 20140702:
483         The Itanium architecture (ia64) has been removed from the list of
484         known architectures. This is the first step in the removal of the
485         architecture.
486
487 20140701:
488         Commit r268115 has added NFSv4.1 server support, merged from
489         projects/nfsv4.1-server.  Since this includes changes to the
490         internal interfaces between the NFS related modules, a full
491         build of the kernel and modules will be necessary.
492         __FreeBSD_version has been bumped.
493
494 20140629:
495         The WITHOUT_VT_SUPPORT kernel config knob has been renamed
496         WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
497         which differs from the behaviour controlled by this knob.)
498
499 20140619:
500         Maximal length of the serial number in CTL was increased from 16 to
501         64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
502         and ctld, need to be rebuilt to work with a new kernel.
503
504 20140606:
505         The libatf-c and libatf-c++ major versions were downgraded to 0 and
506         1 respectively to match the upstream numbers.  They were out of
507         sync because, when they were originally added to FreeBSD, the
508         upstream versions were not respected.  These libraries are private
509         and not yet built by default, so renumbering them should be a
510         non-issue.  However, unclean source trees will yield broken test
511         programs once the operator executes "make delete-old-libs" after a
512         "make installworld".
513
514         Additionally, the atf-sh binary was made private by moving it into
515         /usr/libexec/.  Already-built shell test programs will keep the
516         path to the old binary so they will break after "make delete-old"
517         is run.
518
519         If you are using WITH_TESTS=yes (not the default), wipe the object
520         tree and rebuild from scratch to prevent spurious test failures.
521         This is only needed once: the misnumbered libraries and misplaced
522         binaries have been added to OptionalObsoleteFiles.inc so they will
523         be removed during a clean upgrade.
524
525 20140512:
526         Clang and llvm have been upgraded to 3.4.1 release.
527
528 20140508:
529         We bogusly installed src.opts.mk in /usr/share/mk. This file should
530         be removed to avoid issues in the future (and has been added to
531         ObsoleteFiles.inc).
532
533 20140505:
534         /etc/src.conf now affects only builds of the FreeBSD src tree. In the
535         past, it affected all builds that used the bsd.*.mk files. The old
536         behavior was a bug, but people may have relied upon it. To get this
537         behavior back, you can .include /etc/src.conf from /etc/make.conf
538         (which is still global and isn't changed). This also changes the
539         behavior of incremental builds inside the tree of individual
540         directories. Set MAKESYSPATH to ".../share/mk" to do that.
541         Although this has survived make universe and some upgrade scenarios,
542         other upgrade scenarios may have broken. At least one form of
543         temporary breakage was fixed with MAKESYSPATH settings for buildworld
544         as well... In cases where MAKESYSPATH isn't working with this
545         setting, you'll need to set it to the full path to your tree.
546
547         One side effect of all this cleaning up is that bsd.compiler.mk
548         is no longer implicitly included by bsd.own.mk. If you wish to
549         use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
550         as well.
551
552 20140430:
553         The lindev device has been removed since /dev/full has been made a
554         standard device.  __FreeBSD_version has been bumped.
555
556 20140424:
557         The knob WITHOUT_VI was added to the base system, which controls
558         building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
559         in order to reorder files share/termcap and didn't build ex(1) as a
560         build tool, so building/installing with WITH_VI is highly advised for
561         build hosts for older releases.
562
563         This issue has been fixed in stable/9 and stable/10 in r277022 and
564         r276991, respectively.
565
566 20140418:
567         The YES_HESIOD knob has been removed. It has been obsolete for
568         a decade. Please move to using WITH_HESIOD instead or your builds
569         will silently lack HESIOD.
570
571 20140405:
572         The uart(4) driver has been changed with respect to its handling
573         of the low-level console. Previously the uart(4) driver prevented
574         any process from changing the baudrate or the CLOCAL and HUPCL
575         control flags. By removing the restrictions, operators can make
576         changes to the serial console port without having to reboot.
577         However, when getty(8) is started on the serial device that is
578         associated with the low-level console, a misconfigured terminal
579         line in /etc/ttys will now have a real impact.
580         Before upgrading the kernel, make sure that /etc/ttys has the
581         serial console device configured as 3wire without baudrate to
582         preserve the previous behaviour. E.g:
583             ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
584
585 20140306:
586         Support for libwrap (TCP wrappers) in rpcbind was disabled by default
587         to improve performance.  To re-enable it, if needed, run rpcbind
588         with command line option -W.
589
590 20140226:
591         Switched back to the GPL dtc compiler due to updates in the upstream
592         dts files not being supported by the BSDL dtc compiler. You will need
593         to rebuild your kernel toolchain to pick up the new compiler. Core dumps
594         may result while building dtb files during a kernel build if you fail
595         to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
596
597 20140216:
598         Clang and llvm have been upgraded to 3.4 release.
599
600 20140216:
601         The nve(4) driver has been removed.  Please use the nfe(4) driver
602         for NVIDIA nForce MCP Ethernet adapters instead.
603
604 20140212:
605         An ABI incompatibility crept into the libc++ 3.4 import in r261283.
606         This could cause certain C++ applications using shared libraries built
607         against the previous version of libc++ to crash.  The incompatibility
608         has now been fixed, but any C++ applications or shared libraries built
609         between r261283 and r261801 should be recompiled.
610
611 20140204:
612         OpenSSH will now ignore errors caused by kernel lacking of Capsicum
613         capability mode support.  Please note that enabling the feature in
614         kernel is still highly recommended.
615
616 20140131:
617         OpenSSH is now built with sandbox support, and will use sandbox as
618         the default privilege separation method.  This requires Capsicum
619         capability mode support in kernel.
620
621 20140128:
622         The libelf and libdwarf libraries have been updated to newer
623         versions from upstream. Shared library version numbers for
624         these two libraries were bumped. Any ports or binaries
625         requiring these two libraries should be recompiled.
626         __FreeBSD_version is bumped to 1100006.
627
628 20140110:
629         If a Makefile in a tests/ directory was auto-generating a Kyuafile
630         instead of providing an explicit one, this would prevent such
631         Makefile from providing its own Kyuafile in the future during
632         NO_CLEAN builds.  This has been fixed in the Makefiles but manual
633         intervention is needed to clean an objdir if you use NO_CLEAN:
634           # find /usr/obj -name Kyuafile | xargs rm -f
635
636 20131213:
637         The behavior of gss_pseudo_random() for the krb5 mechanism
638         has changed, for applications requesting a longer random string
639         than produced by the underlying enctype's pseudo-random() function.
640         In particular, the random string produced from a session key of
641         enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
642         be different at the 17th octet and later, after this change.
643         The counter used in the PRF+ construction is now encoded as a
644         big-endian integer in accordance with RFC 4402.
645         __FreeBSD_version is bumped to 1100004.
646
647 20131108:
648         The WITHOUT_ATF build knob has been removed and its functionality
649         has been subsumed into the more generic WITHOUT_TESTS.  If you were
650         using the former to disable the build of the ATF libraries, you
651         should change your settings to use the latter.
652
653 20131025:
654         The default version of mtree is nmtree which is obtained from
655         NetBSD.  The output is generally the same, but may vary
656         slightly.  If you found you need identical output adding
657         "-F freebsd9" to the command line should do the trick.  For the
658         time being, the old mtree is available as fmtree.
659
660 20131014:
661         libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
662         This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
663         1.1.4_8 and verify bsdyml not linked in, before running "make
664         delete-old-libs":
665           # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
666           or
667           # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
668
669 20131010:
670         The stable/10 branch has been created in subversion from head
671         revision r256279.
672
673 20131010:
674         The rc.d/jail script has been updated to support jail(8)
675         configuration file.  The "jail_<jname>_*" rc.conf(5) variables
676         for per-jail configuration are automatically converted to
677         /var/run/jail.<jname>.conf before the jail(8) utility is invoked.
678         This is transparently backward compatible.  See below about some
679         incompatibilities and rc.conf(5) manual page for more details.
680
681         These variables are now deprecated in favor of jail(8) configuration
682         file.  One can use "rc.d/jail config <jname>" command to generate
683         a jail(8) configuration file in /var/run/jail.<jname>.conf without
684         running the jail(8) utility.   The default pathname of the
685         configuration file is /etc/jail.conf and can be specified by
686         using $jail_conf or $jail_<jname>_conf variables.
687
688         Please note that jail_devfs_ruleset accepts an integer at
689         this moment.  Please consider to rewrite the ruleset name
690         with an integer.
691
692 20130930:
693         BIND has been removed from the base system.  If all you need
694         is a local resolver, simply enable and start the local_unbound
695         service instead.  Otherwise, several versions of BIND are
696         available in the ports tree.   The dns/bind99 port is one example.
697
698         With this change, nslookup(1) and dig(1) are no longer in the base
699         system.  Users should instead use host(1) and drill(1) which are
700         in the base system.  Alternatively, nslookup and dig can
701         be obtained by installing the dns/bind-tools port.
702
703 20130916:
704         With the addition of unbound(8), a new unbound user is now
705         required during installworld.  "mergemaster -p" can be used to
706         add the user prior to installworld, as documented in the handbook.
707
708 20130911:
709         OpenSSH is now built with DNSSEC support, and will by default
710         silently trust signed SSHFP records.  This can be controlled with
711         the VerifyHostKeyDNS client configuration setting.  DNSSEC support
712         can be disabled entirely with the WITHOUT_LDNS option in src.conf.
713
714 20130906:
715         The GNU Compiler Collection and C++ standard library (libstdc++)
716         are no longer built by default on platforms where clang is the system
717         compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
718         options in src.conf.
719
720 20130905:
721         The PROCDESC kernel option is now part of the GENERIC kernel
722         configuration and is required for the rwhod(8) to work.
723         If you are using custom kernel configuration, you should include
724         'options PROCDESC'.
725
726 20130905:
727         The API and ABI related to the Capsicum framework was modified
728         in backward incompatible way. The userland libraries and programs
729         have to be recompiled to work with the new kernel. This includes the
730         following libraries and programs, but the whole buildworld is
731         advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
732         kdump, procstat, rwho, rwhod, uniq.
733
734 20130903:
735         AES-NI intrinsic support has been added to gcc.  The AES-NI module
736         has been updated to use this support.  A new gcc is required to build
737         the aesni module on both i386 and amd64.
738
739 20130821:
740         The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
741         Thus "device padlock_rng" and "device rdrand_rng" should be
742         used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
743
744 20130813:
745         WITH_ICONV has been split into two feature sets.  WITH_ICONV now
746         enables just the iconv* functionality and is now on by default.
747         WITH_LIBICONV_COMPAT enables the libiconv api and link time
748         compatability.  Set WITHOUT_ICONV to build the old way.
749         If you have been using WITH_ICONV before, you will very likely
750         need to turn on WITH_LIBICONV_COMPAT.
751
752 20130806:
753         INVARIANTS option now enables DEBUG for code with OpenSolaris and
754         Illumos origin, including ZFS.  If you have INVARIANTS in your
755         kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
756         explicitly.
757         DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
758         locks if WITNESS option was set.  Because that generated a lot of
759         witness(9) reports and all of them were believed to be false
760         positives, this is no longer done.  New option OPENSOLARIS_WITNESS
761         can be used to achieve the previous behavior.
762
763 20130806:
764         Timer values in IPv6 data structures now use time_uptime instead
765         of time_second.  Although this is not a user-visible functional
766         change, userland utilities which directly use them---ndp(8),
767         rtadvd(8), and rtsold(8) in the base system---need to be updated
768         to r253970 or later.
769
770 20130802:
771         find -delete can now delete the pathnames given as arguments,
772         instead of only files found below them or if the pathname did
773         not contain any slashes. Formerly, the following error message
774         would result:
775
776         find: -delete: <path>: relative path potentially not safe
777
778         Deleting the pathnames given as arguments can be prevented
779         without error messages using -mindepth 1 or by changing
780         directory and passing "." as argument to find. This works in the
781         old as well as the new version of find.
782
783 20130726:
784         Behavior of devfs rules path matching has been changed.
785         Pattern is now always matched against fully qualified devfs
786         path and slash characters must be explicitly matched by
787         slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
788         subdirectories must be reviewed.
789
790 20130716:
791         The default ARM ABI has changed to the ARM EABI. The old ABI is
792         incompatible with the ARM EABI and all programs and modules will
793         need to be rebuilt to work with a new kernel.
794
795         To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
796
797         NOTE: Support for the old ABI will be removed in the future and
798         users are advised to upgrade.
799
800 20130709:
801         pkg_install has been disconnected from the build if you really need it
802         you should add WITH_PKGTOOLS in your src.conf(5).
803
804 20130709:
805         Most of network statistics structures were changed to be able
806         keep 64-bits counters. Thus all tools, that work with networking
807         statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
808
809 20130629:
810         Fix targets that run multiple make's to use && rather than ;
811         so that subsequent steps depend on success of previous.
812
813         NOTE: if building 'universe' with -j* on stable/8 or stable/9
814         it would be better to start the build using bmake, to avoid
815         overloading the machine.
816
817 20130618:
818         Fix a bug that allowed a tracing process (e.g. gdb) to write
819         to a memory-mapped file in the traced process's address space
820         even if neither the traced process nor the tracing process had
821         write access to that file.
822
823 20130615:
824         CVS has been removed from the base system.  An exact copy
825         of the code is available from the devel/cvs port.
826
827 20130613:
828         Some people report the following error after the switch to bmake:
829
830                 make: illegal option -- J
831                 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
832                         ...
833                 *** [buildworld] Error code 2
834
835         this likely due to an old instance of make in
836         ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
837         which src/Makefile will use that blindly, if it exists, so if
838         you see the above error:
839
840                 rm -rf `make -V MAKEPATH`
841
842         should resolve it.
843
844 20130516:
845         Use bmake by default.
846         Whereas before one could choose to build with bmake via
847         -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
848         make. The goal is to remove these knobs for 10-RELEASE.
849
850         It is worth noting that bmake (like gmake) treats the command
851         line as the unit of failure, rather than statements within the
852         command line.  Thus '(cd some/where && dosomething)' is safer
853         than 'cd some/where; dosomething'. The '()' allows consistent
854         behavior in parallel build.
855
856 20130429:
857         Fix a bug that allows NFS clients to issue READDIR on files.
858
859 20130426:
860         The WITHOUT_IDEA option has been removed because
861         the IDEA patent expired.
862
863 20130426:
864         The sysctl which controls TRIM support under ZFS has been renamed
865         from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
866         enabled by default.
867
868 20130425:
869         The mergemaster command now uses the default MAKEOBJDIRPREFIX
870         rather than creating it's own in the temporary directory in
871         order allow access to bootstrapped versions of tools such as
872         install and mtree.  When upgrading from version of FreeBSD where
873         the install command does not support -l, you will need to
874         install a new mergemaster command if mergemaster -p is required.
875         This can be accomplished with the command (cd src/usr.sbin/mergemaster
876         && make install).
877
878 20130404:
879         Legacy ATA stack, disabled and replaced by new CAM-based one since
880         FreeBSD 9.0, completely removed from the sources.  Kernel modules
881         atadisk and atapi*, user-level tools atacontrol and burncd are
882         removed.  Kernel option `options ATA_CAM` is now permanently enabled
883         and removed.
884
885 20130319:
886         SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
887         and socketpair(2). Software, in particular Kerberos, may
888         automatically detect and use these during building. The resulting
889         binaries will not work on older kernels.
890
891 20130308:
892         CTL_DISABLE has also been added to the sparc64 GENERIC (for further
893         information, see the respective 20130304 entry).
894
895 20130304:
896         Recent commits to callout(9) changed the size of struct callout,
897         so the KBI is probably heavily disturbed. Also, some functions
898         in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
899         by macros. Every kernel module using it won't load, so rebuild
900         is requested.
901
902         The ctl device has been re-enabled in GENERIC for i386 and amd64,
903         but does not initialize by default (because of the new CTL_DISABLE
904         option) to save memory.  To re-enable it, remove the CTL_DISABLE
905         option from the kernel config file or set kern.cam.ctl.disable=0
906         in /boot/loader.conf.
907
908 20130301:
909         The ctl device has been disabled in GENERIC for i386 and amd64.
910         This was done due to the extra memory being allocated at system
911         initialisation time by the ctl driver which was only used if
912         a CAM target device was created.  This makes a FreeBSD system
913         unusable on 128MB or less of RAM.
914
915 20130208:
916         A new compression method (lz4) has been merged to -HEAD.  Please
917         refer to zpool-features(7) for more information.
918
919         Please refer to the "ZFS notes" section of this file for information
920         on upgrading boot ZFS pools.
921
922 20130129:
923         A BSD-licensed patch(1) variant has been added and is installed
924         as bsdpatch, being the GNU version the default patch.
925         To inverse the logic and use the BSD-licensed one as default,
926         while having the GNU version installed as gnupatch, rebuild
927         and install world with the WITH_BSD_PATCH knob set.
928
929 20130121:
930         Due to the use of the new -l option to install(1) during build
931         and install, you must take care not to directly set the INSTALL
932         make variable in your /etc/make.conf, /etc/src.conf, or on the
933         command line.  If you wish to use the -C flag for all installs
934         you may be able to add INSTALL+=-C to /etc/make.conf or
935         /etc/src.conf.
936
937 20130118:
938         The install(1) option -M has changed meaning and now takes an
939         argument that is a file or path to append logs to.  In the
940         unlikely event that -M was the last option on the command line
941         and the command line contained at least two files and a target
942         directory the first file will have logs appended to it.  The -M
943         option served little practical purpose in the last decade so its
944         use is expected to be extremely rare.
945
946 20121223:
947         After switching to Clang as the default compiler some users of ZFS
948         on i386 systems started to experience stack overflow kernel panics.
949         Please consider using 'options KSTACK_PAGES=4' in such configurations.
950
951 20121222:
952         GEOM_LABEL now mangles label names read from file system metadata.
953         Mangling affect labels containing spaces, non-printable characters,
954         '%' or '"'. Device names in /etc/fstab and other places may need to
955         be updated.
956
957 20121217:
958         By default, only the 10 most recent kernel dumps will be saved.  To
959         restore the previous behaviour (no limit on the number of kernel dumps
960         stored in the dump directory) add the following line to /etc/rc.conf:
961
962                 savecore_flags=""
963
964 20121201:
965         With the addition of auditdistd(8), a new auditdistd user is now
966         required during installworld.  "mergemaster -p" can be used to
967         add the user prior to installworld, as documented in the handbook.
968
969 20121117:
970         The sin6_scope_id member variable in struct sockaddr_in6 is now
971         filled by the kernel before passing the structure to the userland via
972         sysctl or routing socket.  This means the KAME-specific embedded scope
973         id in sin6_addr.s6_addr[2] is always cleared in userland application.
974         This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
975         __FreeBSD_version is bumped to 1000025.
976
977 20121105:
978         On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
979         This means that the world and kernel will be compiled with clang
980         and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
981         and /usr/bin/cpp.  To disable this behavior and revert to building
982         with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
983         of current may need to bootstrap WITHOUT_CLANG first if the clang
984         build fails (its compatibility window doesn't extend to the 9 stable
985         branch point).
986
987 20121102:
988         The IPFIREWALL_FORWARD kernel option has been removed. Its
989         functionality now turned on by default.
990
991 20121023:
992         The ZERO_COPY_SOCKET kernel option has been removed and
993         split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
994         NB: SOCKET_SEND_COW uses the VM page based copy-on-write
995         mechanism which is not safe and may result in kernel crashes.
996         NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
997         driver supports disposeable external page sized mbuf storage.
998         Proper replacements for both zero-copy mechanisms are under
999         consideration and will eventually lead to complete removal
1000         of the two kernel options.
1001
1002 20121023:
1003         The IPv4 network stack has been converted to network byte
1004         order. The following modules need to be recompiled together
1005         with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
1006         pf(4), ipfw(4), ng_ipfw(4), stf(4).
1007
1008 20121022:
1009         Support for non-MPSAFE filesystems was removed from VFS. The
1010         VFS_VERSION was bumped, all filesystem modules shall be
1011         recompiled.
1012
1013 20121018:
1014         All the non-MPSAFE filesystems have been disconnected from
1015         the build. The full list includes: codafs, hpfs, ntfs, nwfs,
1016         portalfs, smbfs, xfs.
1017
1018 20121016:
1019         The interface cloning API and ABI has changed. The following
1020         modules need to be recompiled together with kernel:
1021         ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
1022         vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
1023         faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
1024
1025 20121015:
1026         The sdhci driver was split in two parts: sdhci (generic SD Host
1027         Controller logic) and sdhci_pci (actual hardware driver).
1028         No kernel config modifications are required, but if you
1029         load sdhc as a module you must switch to sdhci_pci instead.
1030
1031 20121014:
1032         Import the FUSE kernel and userland support into base system.
1033
1034 20121013:
1035         The GNU sort(1) program has been removed since the BSD-licensed
1036         sort(1) has been the default for quite some time and no serious
1037         problems have been reported.  The corresponding WITH_GNU_SORT
1038         knob has also gone.
1039
1040 20121006:
1041         The pfil(9) API/ABI for AF_INET family has been changed. Packet
1042         filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
1043         with new kernel.
1044
1045 20121001:
1046         The net80211(4) ABI has been changed to allow for improved driver
1047         PS-POLL and power-save support.  All wireless drivers need to be
1048         recompiled to work with the new kernel.
1049
1050 20120913:
1051         The random(4) support for the VIA hardware random number
1052         generator (`PADLOCK') is no longer enabled unconditionally.
1053         Add the padlock_rng device in the custom kernel config if
1054         needed.  The GENERIC kernels on i386 and amd64 do include the
1055         device, so the change only affects the custom kernel
1056         configurations.
1057
1058 20120908:
1059         The pf(4) packet filter ABI has been changed. pfctl(8) and
1060         snmp_pf module need to be recompiled to work with new kernel.
1061
1062 20120828:
1063         A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
1064         to -HEAD. Pools that have empty_bpobj in active state can not be
1065         imported read-write with ZFS implementations that do not support
1066         this feature. For more information read the zpool-features(5)
1067         manual page.
1068
1069 20120727:
1070         The sparc64 ZFS loader has been changed to no longer try to auto-
1071         detect ZFS providers based on diskN aliases but now requires these
1072         to be explicitly listed in the OFW boot-device environment variable.
1073
1074 20120712:
1075         The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
1076         libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
1077         configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
1078
1079 20120712:
1080         The following sysctls and tunables have been renamed for consistency
1081         with other variables:
1082           kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
1083           kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
1084
1085 20120628:
1086         The sort utility has been replaced with BSD sort.  For now, GNU sort
1087         is also available as "gnusort" or the default can be set back to
1088         GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
1089         installed as "bsdsort".
1090
1091 20120611:
1092         A new version of ZFS (pool version 5000) has been merged to -HEAD.
1093         Starting with this version the old system of ZFS pool versioning
1094         is superseded by "feature flags". This concept enables forward
1095         compatibility against certain future changes in functionality of ZFS
1096         pools. The first read-only compatible "feature flag" for ZFS pools
1097         is named "com.delphix:async_destroy". For more information
1098         read the new zpool-features(5) manual page.
1099         Please refer to the "ZFS notes" section of this file for information
1100         on upgrading boot ZFS pools.
1101
1102 20120417:
1103         The malloc(3) implementation embedded in libc now uses sources imported
1104         as contrib/jemalloc.  The most disruptive API change is to
1105         /etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
1106         delete it prior to installworld, and optionally re-create it using the
1107         new format after rebooting.  See malloc.conf(5) for details
1108         (specifically the TUNING section and the "opt.*" entries in the MALLCTL
1109         NAMESPACE section).
1110
1111 20120328:
1112         Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
1113         is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
1114         now spelled mips.  This is to aid compatibility with third-party
1115         software that expects this naming scheme in uname(3).  Little-endian
1116         settings are unchanged. If you are updating a big-endian mips64 machine
1117         from before this change, you may need to set MACHINE_ARCH=mips64 in
1118         your environment before the new build system will recognize your machine.
1119
1120 20120306:
1121         Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
1122         platforms.
1123
1124 20120229:
1125         Now unix domain sockets behave "as expected" on nullfs(5). Previously
1126         nullfs(5) did not pass through all behaviours to the underlying layer,
1127         as a result if we bound to a socket on the lower layer we could connect
1128         only to the lower path; if we bound to the upper layer we could connect
1129         only to the upper path. The new behavior is one can connect to both the
1130         lower and the upper paths regardless what layer path one binds to.
1131
1132 20120211:
1133         The getifaddrs upgrade path broken with 20111215 has been restored.
1134         If you have upgraded in between 20111215 and 20120209 you need to
1135         recompile libc again with your kernel.  You still need to recompile
1136         world to be able to configure CARP but this restriction already
1137         comes from 20111215.
1138
1139 20120114:
1140         The set_rcvar() function has been removed from /etc/rc.subr.  All
1141         base and ports rc.d scripts have been updated, so if you have a
1142         port installed with a script in /usr/local/etc/rc.d you can either
1143         hand-edit the rcvar= line, or reinstall the port.
1144
1145         An easy way to handle the mass-update of /etc/rc.d:
1146         rm /etc/rc.d/* && mergemaster -i
1147
1148 20120109:
1149         panic(9) now stops other CPUs in the SMP systems, disables interrupts
1150         on the current CPU and prevents other threads from running.
1151         This behavior can be reverted using the kern.stop_scheduler_on_panic
1152         tunable/sysctl.
1153         The new behavior can be incompatible with kern.sync_on_panic.
1154
1155 20111215:
1156         The carp(4) facility has been changed significantly. Configuration
1157         of the CARP protocol via ifconfig(8) has changed, as well as format
1158         of CARP events submitted to devd(8) has changed. See manual pages
1159         for more information. The arpbalance feature of carp(4) is currently
1160         not supported anymore.
1161
1162         Size of struct in_aliasreq, struct in6_aliasreq has changed. User
1163         utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
1164         need to be recompiled.
1165
1166 20111122:
1167         The acpi_wmi(4) status device /dev/wmistat has been renamed to
1168         /dev/wmistat0.
1169
1170 20111108:
1171         The option VFS_ALLOW_NONMPSAFE option has been added in order to
1172         explicitely support non-MPSAFE filesystems.
1173         It is on by default for all supported platform at this present
1174         time.
1175
1176 20111101:
1177         The broken amd(4) driver has been replaced with esp(4) in the amd64,
1178         i386 and pc98 GENERIC kernel configuration files.
1179
1180 20110930:
1181         sysinstall has been removed
1182
1183 20110923:
1184         The stable/9 branch created in subversion.  This corresponds to the
1185         RELENG_9 branch in CVS.
1186
1187 COMMON ITEMS:
1188
1189         General Notes
1190         -------------
1191         Avoid using make -j when upgrading.  While generally safe, there are
1192         sometimes problems using -j to upgrade.  If your upgrade fails with
1193         -j, please try again without -j.  From time to time in the past there
1194         have been problems using -j with buildworld and/or installworld.  This
1195         is especially true when upgrading between "distant" versions (eg one
1196         that cross a major release boundary or several minor releases, or when
1197         several months have passed on the -current branch).
1198
1199         Sometimes, obscure build problems are the result of environment
1200         poisoning.  This can happen because the make utility reads its
1201         environment when searching for values for global variables.  To run
1202         your build attempts in an "environmental clean room", prefix all make
1203         commands with 'env -i '.  See the env(1) manual page for more details.
1204
1205         When upgrading from one major version to another it is generally best
1206         to upgrade to the latest code in the currently installed branch first,
1207         then do an upgrade to the new branch. This is the best-tested upgrade
1208         path, and has the highest probability of being successful.  Please try
1209         this approach before reporting problems with a major version upgrade.
1210
1211         When upgrading a live system, having a root shell around before
1212         installing anything can help undo problems. Not having a root shell
1213         around can lead to problems if pam has changed too much from your
1214         starting point to allow continued authentication after the upgrade.
1215
1216         This file should be read as a log of events. When a later event changes
1217         information of a prior event, the prior event should not be deleted.
1218         Instead, a pointer to the entry with the new information should be
1219         placed in the old entry. Readers of this file should also sanity check
1220         older entries before relying on them blindly. Authors of new entries
1221         should write them with this in mind.
1222
1223         ZFS notes
1224         ---------
1225         When upgrading the boot ZFS pool to a new version, always follow
1226         these two steps:
1227
1228         1.) recompile and reinstall the ZFS boot loader and boot block
1229         (this is part of "make buildworld" and "make installworld")
1230
1231         2.) update the ZFS boot block on your boot drive
1232
1233         The following example updates the ZFS boot block on the first
1234         partition (freebsd-boot) of a GPT partitioned drive ada0:
1235         "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1236
1237         Non-boot pools do not need these updates.
1238
1239         To build a kernel
1240         -----------------
1241         If you are updating from a prior version of FreeBSD (even one just
1242         a few days old), you should follow this procedure.  It is the most
1243         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1244
1245         make kernel-toolchain
1246         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1247         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1248
1249         To test a kernel once
1250         ---------------------
1251         If you just want to boot a kernel once (because you are not sure
1252         if it works, or if you want to boot a known bad kernel to provide
1253         debugging information) run
1254         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1255         nextboot -k testkernel
1256
1257         To just build a kernel when you know that it won't mess you up
1258         --------------------------------------------------------------
1259         This assumes you are already running a CURRENT system.  Replace
1260         ${arch} with the architecture of your machine (e.g. "i386",
1261         "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1262
1263         cd src/sys/${arch}/conf
1264         config KERNEL_NAME_HERE
1265         cd ../compile/KERNEL_NAME_HERE
1266         make depend
1267         make
1268         make install
1269
1270         If this fails, go to the "To build a kernel" section.
1271
1272         To rebuild everything and install it on the current system.
1273         -----------------------------------------------------------
1274         # Note: sometimes if you are running current you gotta do more than
1275         # is listed here if you are upgrading from a really old current.
1276
1277         <make sure you have good level 0 dumps>
1278         make buildworld
1279         make kernel KERNCONF=YOUR_KERNEL_HERE
1280                                                         [1]
1281         <reboot in single user>                         [3]
1282         mergemaster -Fp                                 [5]
1283         make installworld
1284         mergemaster -Fi                                 [4]
1285         make delete-old                                 [6]
1286         <reboot>
1287
1288         To cross-install current onto a separate partition
1289         --------------------------------------------------
1290         # In this approach we use a separate partition to hold
1291         # current's root, 'usr', and 'var' directories.   A partition
1292         # holding "/", "/usr" and "/var" should be about 2GB in
1293         # size.
1294
1295         <make sure you have good level 0 dumps>
1296         <boot into -stable>
1297         make buildworld
1298         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1299         <maybe newfs current's root partition>
1300         <mount current's root partition on directory ${CURRENT_ROOT}>
1301         make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
1302         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1303         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1304         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
1305         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1306         <reboot into current>
1307         <do a "native" rebuild/install as described in the previous section>
1308         <maybe install compatibility libraries from ports/misc/compat*>
1309         <reboot>
1310
1311
1312         To upgrade in-place from stable to current
1313         ----------------------------------------------
1314         <make sure you have good level 0 dumps>
1315         make buildworld                                 [9]
1316         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
1317                                                         [1]
1318         <reboot in single user>                         [3]
1319         mergemaster -Fp                                 [5]
1320         make installworld
1321         mergemaster -Fi                                 [4]
1322         make delete-old                                 [6]
1323         <reboot>
1324
1325         Make sure that you've read the UPDATING file to understand the
1326         tweaks to various things you need.  At this point in the life
1327         cycle of current, things change often and you are on your own
1328         to cope.  The defaults can also change, so please read ALL of
1329         the UPDATING entries.
1330
1331         Also, if you are tracking -current, you must be subscribed to
1332         freebsd-current@freebsd.org.  Make sure that before you update
1333         your sources that you have read and understood all the recent
1334         messages there.  If in doubt, please track -stable which has
1335         much fewer pitfalls.
1336
1337         [1] If you have third party modules, such as vmware, you
1338         should disable them at this point so they don't crash your
1339         system on reboot.
1340
1341         [3] From the bootblocks, boot -s, and then do
1342                 fsck -p
1343                 mount -u /
1344                 mount -a
1345                 cd src
1346                 adjkerntz -i            # if CMOS is wall time
1347         Also, when doing a major release upgrade, it is required that
1348         you boot into single user mode to do the installworld.
1349
1350         [4] Note: This step is non-optional.  Failure to do this step
1351         can result in a significant reduction in the functionality of the
1352         system.  Attempting to do it by hand is not recommended and those
1353         that pursue this avenue should read this file carefully, as well
1354         as the archives of freebsd-current and freebsd-hackers mailing lists
1355         for potential gotchas.  The -U option is also useful to consider.
1356         See mergemaster(8) for more information.
1357
1358         [5] Usually this step is a noop.  However, from time to time
1359         you may need to do this if you get unknown user in the following
1360         step.  It never hurts to do it all the time.  You may need to
1361         install a new mergemaster (cd src/usr.sbin/mergemaster && make
1362         install) after the buildworld before this step if you last updated
1363         from current before 20130425 or from -stable before 20130430.
1364
1365         [6] This only deletes old files and directories. Old libraries
1366         can be deleted by "make delete-old-libs", but you have to make
1367         sure that no program is using those libraries anymore.
1368
1369         [8] In order to have a kernel that can run the 4.x binaries needed to
1370         do an installworld, you must include the COMPAT_FREEBSD4 option in
1371         your kernel.  Failure to do so may leave you with a system that is
1372         hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
1373         required to run the 5.x binaries on more recent kernels.  And so on
1374         for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
1375
1376         Make sure that you merge any new devices from GENERIC since the
1377         last time you updated your kernel config file.
1378
1379         [9] When checking out sources, you must include the -P flag to have
1380         cvs prune empty directories.
1381
1382         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1383         "?=" instead of the "=" assignment operator, so that buildworld can
1384         override the CPUTYPE if it needs to.
1385
1386         MAKEOBJDIRPREFIX must be defined in an environment variable, and
1387         not on the command line, or in /etc/make.conf.  buildworld will
1388         warn if it is improperly defined.
1389 FORMAT:
1390
1391 This file contains a list, in reverse chronological order, of major
1392 breakages in tracking -current.  It is not guaranteed to be a complete
1393 list of such breakages, and only contains entries since September 23, 2011.
1394 If you need to see UPDATING entries from before that date, you will need
1395 to fetch an UPDATING file from an older FreeBSD release.
1396
1397 Copyright information:
1398
1399 Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1400
1401 Redistribution, publication, translation and use, with or without
1402 modification, in full or in part, in any form or format of this
1403 document are permitted without further permission from the author.
1404
1405 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1406 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1407 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1408 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1409 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1410 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1411 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1412 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1413 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1414 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1415 POSSIBILITY OF SUCH DAMAGE.
1416
1417 Contact Warner Losh if you have any questions about your use of
1418 this document.
1419
1420 $FreeBSD$