]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
Fix ipfw invalid mbuf handling.
[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     https://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
17 from older version of current across the gcc/clang cutover is a bit fragile.
18
19 20200319        p7      FreeBSD-EN-20:04.pfctl
20                         FreeBSD-EN-20:06.ipv6
21                         FreeBSD-SA-20:04.tcp
22                         FreeBSD-SA-20:05.if_oce_ioctl
23                         FreeBSD-SA-20:07.epair
24                         FreeBSD-SA-20:08.jail
25                         FreeBSD-SA-20:09.ntp
26
27         Fix missing pfctl(8) tunable [EN-20:04.pfctl]
28
29         Fix incorrect checksum calculations with IPv6 extension headers [EN-20:06.ipv6]
30
31         Fix TCP IPv6 SYN cache kernel information disclosure [SA-20:04.tcp]
32
33         Fix insufficient oce(4) ioctl(2) privilege checking [SA-20:05.if_oce_ioctl]
34
35         Fix incorrect user-controlled pointer use in epair [SA-20:07.epair]
36
37         Fix kernel memory disclosure with nested jails [SA-20:08.jail]
38
39         Fix multiple denial of service in ntpd [SA-20:09.ntp]
40
41 20200128        p6      FreeBSD-EN-20:01.ssp
42                         FreeBSD-EN-20:02.nmount
43                         FreeBSD-SA-20:01.libfetch
44                         FreeBSD-SA-20:03.thrmisc
45
46         Fix imprecise ordering of SSP canary initialization [EN-20:01.ssp]
47         
48         Fix nmount invalid pointer dereference [EN-20:02.nmount]
49         
50         Fix libfetch buffer overflow [SA-20:01.libfetch]
51
52         Fix kernel stack data disclosure [SA-20:03.thrmisc]
53         
54 20191112        p5      FreeBSD-SA-19:25.mcepsc
55
56         Fix Machine Check Exception on Page Size Change [SA-19:25.mcepsc]
57         
58 20191023        p4      FreeBSD-EN-19:18.tzdata
59
60         Import tzdata 2019c. [EN-19:18.tzdata]
61         
62 20190820        p3      FreeBSD-EN-19:16.bhyve
63                         FreeBSD-EN-19:17.ipfw
64                         FreeBSD-SA-19:22.mbuf
65                         FreeBSD-SA-19:23.midi
66                         FreeBSD-SA-19:24.mqueuefs
67
68         Bhyve instruction emulation improvements (opcode 03H and F7H).
69                                                 [EN-19:16.bhyve]
70
71         Fix ipfw(8) jail keyword prior to jail startup. [EN-19:17.ipfw]
72
73         Fix IPv6 remote denial of service. [SA-19:22.mbuf]
74
75         Fix kernel memory disclosure from /dev/midistat. [SA-19:23.midi]
76
77         Fix reference count overflow in mqueuefs. [SA-19:24.mqueuefs]
78
79 20190806        p2      FreeBSD-SA-19:18.bzip2
80                         FreeBSD-SA-19:19.mldv2
81                         FreeBSD-SA-19:20.bsnmp
82                         FreeBSD-SA-19:21.bhyve
83
84         Fix multiple vulnerabilities in bzip2. [SA-19:18.bzip2]
85
86         Fix ICMPv6 / MLDv2 out-of-bounds memory access. [SA-19:19.mldv2]
87
88         Fix insufficient message length validation in bsnmp library.
89                                                 [SA-19:20.bsnmp]
90
91         Fix insufficient validation of guest-supplied data (e1000 device).
92                                                 [SA-19:21.bhyve]
93
94 20190724        p1      FreeBSD-EN-19:13.mds
95                         FreeBSD-SA-19:12.telnet
96                         FreeBSD-SA-19:13.pts
97                         FreeBSD-SA-19:14.freebsd32
98                         FreeBSD-SA-19:15.mqueuefs
99                         FreeBSD-SA-19:16.bhyve
100                         FreeBSD-SA-19:17.fd
101
102         Fix panic from Intel CPU vulnerability mitigation. [EN-19:13.mds]
103
104         Fix multiple telnet client vulnerabilities. [SA-19:12.telnet]
105
106         Fix pts write-after-free. [SA-19:13.pts]
107
108         Fix kernel memory disclosure in freebsd32_ioctl. [SA-19:14.freebsd32]
109
110         Fix reference count overflow in mqueuefs. [SA-19:15.mqueuefs]
111
112         Fix byhve out-of-bounds read in XHCI device. [SA-19:16.bhyve]
113
114         Fix file descriptor reference count leak. [SA-19:17.fd]
115
116 20190709:
117         11.3-RELEASE.
118
119 20190702                FreeBSD-EN-19:12.tzdata
120                         FreeBSD-SA-19:09.iconv
121                         FreeBSD-SA-19:11.cd_ioctl
122
123         Import tzdata 2019b. [EN-19:12.tzdata]
124
125         Fix iconv buffer overflow. [SA-19:09.iconv]
126
127         Fix privilege escalation in cd(4) driver. [SA-19:11.cd_ioctl]
128
129 20190426:
130         CARP now sets DSCP value CS7(Network Traffic) in the flowlabel field
131         of packets by default instead of only setting TOS_LOWDELAY in IPv4,
132         which was deprecated in 1998.  Original behavior can be restored by
133         setting sysctl net.inet.carp.dscp=4.
134
135 20190416:
136         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
137         8.0.0.  Please see the 20141231 entry below for information about
138         prerequisites and upgrading, if you are not already using clang 3.5.0
139         or higher.
140
141 20190226:
142         geom_uzip(4) depends on the new module xz.  If geom_uzip is statically
143         compiled into your custom kernel, add 'device xz' statement to the
144         kernel config.
145
146 20190220:
147         Co-existance for Forth and Lua interpreters in bootloaders has now been
148         merged to ease testing of lualoader.  LOADER_DEFAULT_INTERP, documented
149         in build(7), may be used to control which interpreter flavor is used in
150         the default loader to be installed.  For systems where Lua and Forth
151         coexist, this switch can also be made on a running system by creating a
152         link from /boot/loader{,.efi} to /boot/loader_${flavor}{,.efi} rather
153         than requiring a rebuild.
154
155         The default flavor in this branch will remain Forth.  As indicated in
156         the 20190216 UPDATING entry, booting is a complex environment; it would
157         be prudent to assume that lualoader may not work for your setup and make
158         provisions for backup boot methods.
159
160 20190220:
161         zfsloader's functionality has now been folded into loader.
162         zfsloader is no longer necesasary once you've updated your
163         boot blocks. For a transition period, we will install a
164         hardlink for zfsloader to loader to allow a smooth transition
165         until the boot blocks can be updated (hard link because old
166         zfs boot blocks don't understand symlinks).
167
168 20190216:
169         Lualoader has been merged to facilitate testing on this branch.  It's
170         purely opt-in for now by building WITH_LOADER_LUA and WITHOUT_FORTH in
171         /etc/src.conf, but co-existance will come shortly.  Booting is a complex
172         environment and test coverage for Lua-enabled loaders has been thin, so
173         it would be prudent to assume it might not work and make provisions for
174         backup boot methods.
175
176 20190216:
177         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
178         7.0.1.  Please see the 20141231 entry below for information about
179         prerequisites and upgrading, if you are not already using clang 3.5.0
180         or higher.
181
182 20181228:
183         r342562 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
184         in the same as it is applied to NFSv2 and 3.  This implies that NFSv4
185         servers that have vfs.nfsd.nfs_privport set will only allow mounts
186         from clients using a reserved port#. Since both the FreeBSD and Linux
187         NFSv4 clients use reserved port#s by default, this should not affect
188         most NFSv4 mounts.
189
190 20181107:
191         The '%I' format in the kern.corefile sysctl limits the number of
192         core files that a process can generate to the number stored in the
193         debug.ncores sysctl. The '%I' format is replaced by the single digit
194         index. Previously, if all indexes were taken the kernel would overwrite
195         only a core file with the highest index in a filename.
196         Currently the system will create a new core file if there is a free
197         index or if all slots are taken it will overwrite the oldest one.
198
199 20180818:
200         WITH_OFED option now only enables the build for the OFED libraries
201         and some fundamental client utilities.  OpenSM and rest of the
202         debugging tools are enabled by WITH_OFED_EXTRA build switch.
203         WITH_OFED is turned on by default on amd64.
204
205 20180714:
206         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
207         6.0.1.  Please see the 20141231 entry below for information about
208         prerequisites and upgrading, if you are not already using clang 3.5.0
209         or higher.
210
211 20180601:
212         The releng/11.2 branch has been created from stable/11@r334458.
213
214 20180504:
215         The tz database (tzdb) has been updated to 2018e.  This version more
216         correctly models time stamps in time zones with negative DST such as
217         Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
218         Africa/Windhoek (1994/2017).  This does not affect the UT offsets, only
219         time zone abbreviations and the tm_isdst flag.
220
221 20180409:
222         The use of RSS hash from the network card aka flowid has been
223         disabled by default for lagg(4) as it's currently incompatible with
224         the lacp and loadbalance protocols.
225
226         This can be re-enabled by setting the following in loader.conf:
227         net.link.lagg.default_use_flowid="1"
228
229 20180331:
230         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
231         6.0.0.  Please see the 20141231 entry below for information about
232         prerequisites and upgrading, if you are not already using clang 3.5.0
233         or higher.
234
235 20180211:
236         The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
237         WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
238         to WITH/OUT_LOADER_GELI.
239
240 20180210:
241         The geli password typed at boot is now hidden.  To restore the previous
242         behavior, see geli(8) for configuration options.
243
244         The SW_WATCHDOG option is no longer necessary to enable the
245         hardclock-based software watchdog if no hardware watchdog is
246         configured. As before, SW_WATCHDOG will cause the software
247         watchdog to be enabled even if a hardware watchdog is configured.
248
249 20180108:
250         lint(1) binaries and library are no longer built by default.  To
251         enable building them, define WITH_LINT in src.conf.  If you are using
252         a FreeBSD 12 or later system to build 11-stable, you may need to
253         install a lint(1) binary to use WITH_LINT.
254
255 20171003:
256         When building multiple kernels using KERNCONF, non-existent KERNCONF
257         files will produce an error and buildkernel will fail. Previously
258         missing KERNCONF files silently failed giving no indication as to
259         why, only to subsequently discover during installkernel that the
260         desired kernel was never built in the first place.
261
262 20170926:
263         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
264         Please see the 20141231 entry below for information about prerequisites
265         and upgrading, if you are not already using clang 3.5.0 or higher.
266
267 20170822:
268         Since the switch to GPT disk labels, fsck for UFS/FFS has been
269         unable to automatically find alternate superblocks. As of r322806,
270         the information needed to find alternate superblocks has been
271         moved to the end of the area reserved for the boot block.
272         Filesystems created with a newfs of this vintage or later
273         will create the recovery information. If you have a filesystem
274         created prior to this change and wish to have a recovery block
275         created for your filesystem, you can do so by running fsck in
276         forground mode (i.e., do not use the -p or -y options). As it
277         starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
278         to which you should answer yes.
279
280 20170629:
281         The releng/11.1 branch has been created from stable/11@r320475.
282
283 20170518:
284         arm64 builds now use the base system LLD 4.0.0 linker by default,
285         instead of requiring that the aarch64-binutils port or package be
286         installed. To continue using aarch64-binutils, set
287         CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
288
289 20170529:
290         The ctl.ko module no longer implements the iSCSI target frontend:
291         cfiscsi.ko does instead.
292
293         If building cfiscsi.ko as a kernel module, the module can be loaded
294         via one of the following methods:
295         - `cfiscsi_load="YES"` in loader.conf(5).
296         - Add `cfiscsi` to `$kld_list` in rc.conf(5).
297         - ctladm(8)/ctld(8), when compiled with iSCSI support
298           (`WITH_ISCSI=yes` in src.conf(5))
299
300         Please see cfiscsi(4) for more details.
301
302 20170511:
303         The mmcsd.ko module now additionally depends on geom_flashmap.ko.
304         Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
305         same source (previously, the dependency of mmcsd.ko on mmc.ko was
306         missing, but mmcsd.ko now will refuse to load if it is incompatible
307         with mmc.ko).
308
309 20170414:
310         Binds and sends to the loopback addresses, IPv6 and IPv4, will now
311         use any explicitly assigned loopback address available in the jail
312         instead of using the first assigned address of the jail.
313
314 20170413:
315         As of r316810 for ipfilter, keep frags is no longer assumed when
316         keep state is specified in a rule. r316810 aligns ipfilter with
317         documentation in man pages separating keep frags from keep state.
318         This allows keep state to specified without forcing keep frags
319         and allows keep frags to be specified independently of keep state.
320         To maintain previous behaviour, also specify keep frags with
321         keep state (as documented in ipf.conf.5).
322
323 20170402:
324         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
325         Please see the 20141231 entry below for information about prerequisites
326         and upgrading, if you are not already using clang 3.5.0 or higher.
327
328 20170323:
329         The code that provides support for ZFS .zfs/ directory functionality
330         has been reimplemented.  It's not possible now to create a snapshot
331         by mkdir under .zfs/snapshot/.  That should be the only user visible
332         change.
333
334 20170319:
335         Many changes in the IPsec code have been merged from the FreeBSD-CURRENT
336         branch. The IPSEC_FILTERTUNNEL kernel option is removed in favour of
337         corresponding sysctl. The IPSEC_NAT_T kernel option is also removed,
338         and now NAT-T is supported by default. Security associations now use  
339         the single namespace for SPI allocation, so if you use several manually
340         configured security associations with the same SPI, this configuration
341         needs modification.
342
343 20161217:
344         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
345         Please see the 20141231 entry below for information about prerequisites
346         and upgrading, if you are not already using clang 3.5.0 or higher.
347
348 20161124:
349         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
350         Please see the 20141231 entry below for information about prerequisites
351         and upgrading, if you are not already using clang 3.5.0 or higher.
352
353 20161119:
354         The layout of the pmap structure has changed for powerpc to put the pmap
355         statistics at the front for all CPU variations.  libkvm(3) and all tools
356         that link against it need to be recompiled.
357
358 20161030:
359         isl(4) and cyapa(4) drivers now require a new driver,
360         chromebook_platform(4), to work properly on Chromebook-class hardware.
361         On other types of hardware the drivers may need to be configured using
362         device hints.  Please see the corresponding manual pages for details.
363
364 20161210:
365         Relocatable object files with the extension of .So have been renamed
366         to use an extension of .pico instead.  The purpose of this change is
367         to avoid a name clash with shared libraries on case-insensitive file
368         systems.  On those file systems, foo.So is the same file as foo.so.
369
370 20160811:
371         The releng/11.0 branch has been created from stable/11@r303970.
372
373 20160708:
374         The stable/11 branch has been created from head@r302406.
375
376 20160622:
377         The libc stub for the pipe(2) system call has been replaced with
378         a wrapper that calls the pipe2(2) system call and the pipe(2)
379         system call is now only implemented by the kernels that include
380         "options COMPAT_FREEBSD10" in their config file (this is the
381         default).  Users should ensure that this option is enabled in
382         their kernel or upgrade userspace to r302092 before upgrading their
383         kernel.
384
385 20160527:
386         CAM will now strip leading spaces from SCSI disks' serial numbers.
387         This will effect users who create UFS filesystems on SCSI disks using
388         those disk's diskid device nodes.  For example, if /etc/fstab
389         previously contained a line like
390         "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
391         change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
392         transforms like gmirror may also be affected.  ZFS users should
393         generally be fine.
394
395 20160523:
396         The bitstring(3) API has been updated with new functionality and
397         improved performance.  But it is binary-incompatible with the old API.
398         Objects built with the new headers may not be linked against objects
399         built with the old headers.
400
401 20160520:
402         The brk and sbrk functions have been removed from libc on arm64.
403         Binutils from ports has been updated to not link to these
404         functions and should be updated to the latest version before
405         installing a new libc.
406
407 20160517:
408         The armv6 port now defaults to hard float ABI. Limited support
409         for running both hardfloat and soft float on the same system
410         is available using the libraries installed with -DWITH_LIBSOFT.
411         This has only been tested as an upgrade path for installworld
412         and packages may fail or need manual intervention to run. New
413         packages will be needed.
414
415         To update an existing self-hosted armv6hf system, you must add
416         TARGET_ARCH=armv6 on the make command line for both the build 
417         and the install steps.
418
419 20160510:
420         Kernel modules compiled outside of a kernel build now default to
421         installing to /boot/modules instead of /boot/kernel.  Many kernel
422         modules built this way (such as those in ports) already overrode
423         KMODDIR explicitly to install into /boot/modules.  However,
424         manually building and installing a module from /sys/modules will
425         now install to /boot/modules instead of /boot/kernel.
426
427 20160414:
428         The CAM I/O scheduler has been committed to the kernel. There should be
429         no user visible impact. This does enable NCQ Trim on ada SSDs. While the
430         list of known rogues that claim support for this but actually corrupt
431         data is believed to be complete, be on the lookout for data
432         corruption. The known rogue list is believed to be complete:
433
434                 o Crucial MX100, M550 drives with MU01 firmware.
435                 o Micron M510 and M550 drives with MU01 firmware.
436                 o Micron M500 prior to MU07 firmware
437                 o Samsung 830, 840, and 850 all firmwares
438                 o FCCT M500 all firmwares
439
440         Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
441         with working NCQ TRIM. For Micron branded drives, see your sales rep for
442         updated firmware. Black listed drives will work correctly because these
443         drives work correctly so long as no NCQ TRIMs are sent to them. Given
444         this list is the same as found in Linux, it's believed there are no
445         other rogues in the market place. All other models from the above
446         vendors work.
447
448         To be safe, if you are at all concerned, you can quirk each of your
449         drives to prevent NCQ from being sent by setting:
450                 kern.cam.ada.X.quirks="0x2"
451         in loader.conf. If the drive requires the 4k sector quirk, set the
452         quirks entry to 0x3.
453
454 20160330:
455         The FAST_DEPEND build option has been removed and its functionality is
456         now the one true way.  The old mkdep(1) style of 'make depend' has
457         been removed.  See 20160311 for further details.
458
459 20160317:
460         Resource range types have grown from unsigned long to uintmax_t.  All
461         drivers, and anything using libdevinfo, need to be recompiled.
462
463 20160311:
464         WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
465         builds.  It no longer runs mkdep(1) during 'make depend', and the
466         'make depend' stage can safely be skipped now as it is auto ran
467         when building 'make all' and will generate all SRCS and DPSRCS before
468         building anything else.  Dependencies are gathered at compile time with
469         -MF flags kept in separate .depend files per object file.  Users should
470         run 'make cleandepend' once if using -DNO_CLEAN to clean out older
471         stale .depend files.
472
473 20160306:
474         On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
475         kernel modules.  Therefore, if you load any kernel modules at boot time,
476         please install the boot loaders after you install the kernel, but before
477         rebooting, e.g.:
478
479         make buildworld
480         make kernel KERNCONF=YOUR_KERNEL_HERE
481         make -C sys/boot install
482         <reboot in single user>
483
484         Then follow the usual steps, described in the General Notes section,
485         below.
486
487 20160305:
488         Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
489         see the 20141231 entry below for information about prerequisites and
490         upgrading, if you are not already using clang 3.5.0 or higher.
491
492 20160301:
493         The AIO subsystem is now a standard part of the kernel.  The
494         VFS_AIO kernel option and aio.ko kernel module have been removed.
495         Due to stability concerns, asynchronous I/O requests are only
496         permitted on sockets and raw disks by default.  To enable
497         asynchronous I/O requests on all file types, set the
498         vfs.aio.enable_unsafe sysctl to a non-zero value.
499
500 20160226:
501         The ELF object manipulation tool objcopy is now provided by the
502         ELF Tool Chain project rather than by GNU binutils. It should be a
503         drop-in replacement, with the addition of arm64 support. The
504         (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
505         to obtain the GNU version if necessary.
506
507 20160129:
508         Building ZFS pools on top of zvols is prohibited by default.  That
509         feature has never worked safely; it's always been prone to deadlocks.
510         Using a zvol as the backing store for a VM guest's virtual disk will
511         still work, even if the guest is using ZFS.  Legacy behavior can be
512         restored by setting vfs.zfs.vol.recursive=1.
513
514 20160119:
515         The NONE and HPN patches has been removed from OpenSSH.  They are
516         still available in the security/openssh-portable port.
517
518 20160113:
519         With the addition of ypldap(8), a new _ypldap user is now required
520         during installworld. "mergemaster -p" can be used to add the user
521         prior to installworld, as documented in the handbook.
522
523 20151216:
524         The tftp loader (pxeboot) now uses the option root-path directive. As a
525         consequence it no longer looks for a pxeboot.4th file on the tftp
526         server. Instead it uses the regular /boot infrastructure as with the
527         other loaders.
528
529 20151211:
530         The code to start recording plug and play data into the modules has
531         been committed. While the old tools will properly build a new kernel,
532         a number of warnings about "unknown metadata record 4" will be produced
533         for an older kldxref. To avoid such warnings, make sure to rebuild
534         the kernel toolchain (or world). Make sure that you have r292078 or
535         later when trying to build 292077 or later before rebuilding.
536
537 20151207:
538         Debug data files are now built by default with 'make buildworld' and
539         installed with 'make installworld'. This facilitates debugging but
540         requires more disk space both during the build and for the installed
541         world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
542         in src.conf(5).
543
544 20151130:
545         r291527 changed the internal interface between the nfsd.ko and
546         nfscommon.ko modules. As such, they must both be upgraded to-gether.
547         __FreeBSD_version has been bumped because of this.
548
549 20151108:
550         Add support for unicode collation strings leads to a change of
551         order of files listed by ls(1) for example. To get back to the old
552         behaviour, set LC_COLLATE environment variable to "C".
553
554         Databases administrators will need to reindex their databases given
555         collation results will be different.
556
557         Due to a bug in install(1) it is recommended to remove the ancient
558         locales before running make installworld.
559
560         rm -rf /usr/share/locale/*
561
562 20151030:
563         The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
564         libcrypto.so.7 or libssl.so.7 must be recompiled.
565
566 20151020:
567         Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
568         Kernel modules isp_2400_multi and isp_2500_multi were removed and
569         should be replaced with isp_2400 and isp_2500 modules respectively.
570
571 20151017:
572         The build previously allowed using 'make -n' to not recurse into
573         sub-directories while showing what commands would be executed, and
574         'make -n -n' to recursively show commands.  Now 'make -n' will recurse
575         and 'make -N' will not.
576
577 20151012:
578         If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
579         and etcupdate will now use this file. A custom sendmail.cf is now
580         updated via this mechanism rather than via installworld.  If you had
581         excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
582         want to remove the exclusion or change it to "always install".
583         /etc/mail/sendmail.cf is now managed the same way regardless of
584         whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
585         SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
586
587 20151011:
588         Compatibility shims for legacy ATA device names have been removed.
589         It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
590         and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
591         environment variables, /dev/ad* and /dev/ar* symbolic links.
592
593 20151006:
594         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
595         Please see the 20141231 entry below for information about prerequisites
596         and upgrading, if you are not already using clang 3.5.0 or higher.
597
598 20150924:
599         Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
600         and renamed from .symbols to .debug. This reduces the size requirements
601         on the boot partition or file system and provides consistency with
602         userland debug files.
603
604         When using the supported kernel installation method the
605         /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
606         as is done with /boot/kernel.
607
608         Developers wishing to maintain the historical behavior of installing
609         debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
610
611 20150827:
612         The wireless drivers had undergone changes that remove the 'parent
613         interface' from the ifconfig -l output. The rc.d network scripts
614         used to check presence of a parent interface in the list, so old
615         scripts would fail to start wireless networking. Thus, etcupdate(3)
616         or mergemaster(8) run is required after kernel update, to update your
617         rc.d scripts in /etc.
618
619 20150827:
620         pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
621         These configurations are now automatically interpreted as
622         'scrub fragment reassemble'.
623
624 20150817:
625         Kernel-loadable modules for the random(4) device are back. To use
626         them, the kernel must have
627
628         device  random
629         options RANDOM_LOADABLE
630
631         kldload(8) can then be used to load random_fortuna.ko
632         or random_yarrow.ko. Please note that due to the indirect
633         function calls that the loadable modules need to provide,
634         the build-in variants will be slightly more efficient.
635
636         The random(4) kernel option RANDOM_DUMMY has been retired due to
637         unpopularity. It was not all that useful anyway.
638
639 20150813:
640         The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
641         Control over building the ELF Tool Chain tools is now provided by
642         the WITHOUT_TOOLCHAIN knob.
643
644 20150810:
645         The polarity of Pulse Per Second (PPS) capture events with the
646         uart(4) driver has been corrected.  Prior to this change the PPS
647         "assert" event corresponded to the trailing edge of a positive PPS
648         pulse and the "clear" event was the leading edge of the next pulse.
649
650         As the width of a PPS pulse in a typical GPS receiver is on the
651         order of 1 millisecond, most users will not notice any significant
652         difference with this change.
653
654         Anyone who has compensated for the historical polarity reversal by
655         configuring a negative offset equal to the pulse width will need to
656         remove that workaround.
657
658 20150809:
659         The default group assigned to /dev/dri entries has been changed
660         from 'wheel' to 'video' with the id of '44'. If you want to have
661         access to the dri devices please add yourself to the video group
662         with:
663
664         # pw groupmod video -m $USER
665
666 20150806:
667         The menu.rc and loader.rc files will now be replaced during 
668         upgrades. Please migrate local changes to menu.rc.local and
669         loader.rc.local instead.
670
671 20150805:
672         GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
673         strings and strip have been removed. The src.conf(5) knob
674         WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
675
676 20150728:
677         As ZFS requires more kernel stack pages than is the default on some
678         architectures e.g. i386, it now warns if KSTACK_PAGES is less than
679         ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
680
681         Please consider using 'options KSTACK_PAGES=X' where X is greater
682         than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
683
684 20150706:
685         sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
686         and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
687         default, i.e., they will not contain "::".  For example, instead
688         of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
689         to have a more specific match, such as different map entries for
690         IPv6:0:0 vs IPv6:0.  This change requires that configuration
691         data (including maps, files, classes, custom ruleset, etc.) must
692         use the same format, so make certain such configuration data is
693         upgrading.  As a very simple check search for patterns like
694         'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
695         behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
696         the cf option UseCompressedIPv6Addresses.
697
698 20150630:
699         The default kernel entropy-processing algorithm is now
700         Fortuna, replacing Yarrow.
701
702         Assuming you have 'device random' in your kernel config
703         file, the configurations allow a kernel option to override
704         this default. You may choose *ONE* of:
705
706         options RANDOM_YARROW   # Legacy /dev/random algorithm.
707         options RANDOM_DUMMY    # Blocking-only driver.
708
709         If you have neither, you get Fortuna.  For most people,
710         read no further, Fortuna will give a /dev/random that works
711         like it always used to, and the difference will be irrelevant.
712
713         If you remove 'device random', you get *NO* kernel-processed
714         entropy at all. This may be acceptable to folks building
715         embedded systems, but has complications. Carry on reading,
716         and it is assumed you know what you need.
717
718         *PLEASE* read random(4) and random(9) if you are in the
719         habit of tweaking kernel configs, and/or if you are a member
720         of the embedded community, wanting specific and not-usual
721         behaviour from your security subsystems.
722
723         NOTE!! If you use RANDOM_DUMMY and/or have no 'device
724         random', you will NOT have a functioning /dev/random, and
725         many cryptographic features will not work, including SSH.
726         You may also find strange behaviour from the random(3) set
727         of library functions, in particular sranddev(3), srandomdev(3)
728         and arc4random(3). The reason for this is that the KERN_ARND
729         sysctl only returns entropy if it thinks it has some to
730         share, and with RANDOM_DUMMY or no 'device random' this
731         will never happen.
732
733 20150623:
734         An additional fix for the issue described in the 20150614 sendmail
735         entry below has been been committed in revision 284717.
736
737 20150616:
738         FreeBSD's old make (fmake) has been removed from the system. It is
739         available as the devel/fmake port or via pkg install fmake.
740
741 20150615:
742         The fix for the issue described in the 20150614 sendmail entry
743         below has been been committed in revision 284436.  The work
744         around described in that entry is no longer needed unless the
745         default setting is overridden by a confDH_PARAMETERS configuration
746         setting of '5' or pointing to a 512 bit DH parameter file.
747
748 20150614:
749         ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
750         atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
751         and devel/kyua to version 0.20+ and adjust any calling code to work
752         with Kyuafile and kyua.
753
754 20150614:
755         The import of openssl to address the FreeBSD-SA-15:10.openssl
756         security advisory includes a change which rejects handshakes
757         with DH parameters below 768 bits.  sendmail releases prior
758         to 8.15.2 (not yet released), defaulted to a 512 bit
759         DH parameter setting for client connections.  To work around
760         this interoperability, sendmail can be configured to use a
761         2048 bit DH parameter by:
762
763         1. Edit /etc/mail/`hostname`.mc
764         2. If a setting for confDH_PARAMETERS does not exist or
765            exists and is set to a string beginning with '5',
766            replace it with '2'.
767         3. If a setting for confDH_PARAMETERS exists and is set to
768            a file path, create a new file with:
769                 openssl dhparam -out /path/to/file 2048
770         4. Rebuild the .cf file:
771                 cd /etc/mail/; make; make install
772         5. Restart sendmail:
773                 cd /etc/mail/; make restart
774
775         A sendmail patch is coming, at which time this file will be
776         updated.
777
778 20150604:
779         Generation of legacy formatted entries have been disabled by default
780         in pwd_mkdb(8), as all base system consumers of the legacy formatted
781         entries were converted to use the new format by default when the new,
782         machine independent format have been added and supported since FreeBSD
783         5.x.
784
785         Please see the pwd_mkdb(8) manual page for further details.
786
787 20150525:
788         Clang and llvm have been upgraded to 3.6.1 release.  Please see the
789         20141231 entry below for information about prerequisites and upgrading,
790         if you are not already using 3.5.0 or higher.
791
792 20150521:
793         TI platform code switched to using vendor DTS files and this update
794         may break existing systems running on Beaglebone, Beaglebone Black,
795         and Pandaboard:
796
797         - dtb files should be regenerated/reinstalled. Filenames are the
798           same but content is different now
799         - GPIO addressing was changed, now each GPIO bank (32 pins per bank)
800           has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
801           addressing scheme is now pin 25 on /dev/gpioc3.
802         - Pandaboard: /etc/ttys should be updated, serial console device is
803           now /dev/ttyu2, not /dev/ttyu0
804
805 20150501:
806         soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
807         If you need the GNU extension from groff soelim(1), install groff
808         from package: pkg install groff, or via ports: textproc/groff.
809
810 20150423:
811         chmod, chflags, chown and chgrp now affect symlinks in -R mode as
812         defined in symlink(7); previously symlinks were silently ignored.
813
814 20150415:
815         The const qualifier has been removed from iconv(3) to comply with
816         POSIX.  The ports tree is aware of this from r384038 onwards.
817
818 20150416:
819         Libraries specified by LIBADD in Makefiles must have a corresponding
820         DPADD_<lib> variable to ensure correct dependencies.  This is now
821         enforced in src.libnames.mk.
822
823 20150324:
824         From legacy ata(4) driver was removed support for SATA controllers
825         supported by more functional drivers ahci(4), siis(4) and mvs(4).
826         Kernel modules ataahci and ataadaptec were removed completely,
827         replaced by ahci and mvs modules respectively.
828
829 20150315:
830         Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
831         the 20141231 entry below for information about prerequisites and
832         upgrading, if you are not already using 3.5.0 or higher.
833
834 20150307:
835         The 32-bit PowerPC kernel has been changed to a position-independent
836         executable. This can only be booted with a version of loader(8)
837         newer than January 31, 2015, so make sure to update both world and
838         kernel before rebooting.
839
840 20150217:
841         If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
842         but before r278950, the RNG was not seeded properly.  Immediately
843         upgrade the kernel to r278950 or later and regenerate any keys (e.g.
844         ssh keys or openssl keys) that were generated w/ a kernel from that
845         range.  This does not affect programs that directly used /dev/random
846         or /dev/urandom.  All userland uses of arc4random(3) are affected.
847
848 20150210:
849         The autofs(4) ABI was changed in order to restore binary compatibility
850         with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
851         with the new kernel.
852
853 20150131:
854         The powerpc64 kernel has been changed to a position-independent
855         executable. This can only be booted with a new version of loader(8),
856         so make sure to update both world and kernel before rebooting.
857
858 20150118:
859         Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
860         only release, no new features have been added.  Please see the 20141231
861         entry below for information about prerequisites and upgrading, if you
862         are not already using 3.5.0.
863
864 20150107:
865         ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
866         taken from the ELF Tool Chain project rather than GNU binutils. They
867         should be drop-in replacements, with the addition of arm64 support.
868         The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
869         binutils tools, if necessary. See 20150805 for updated information.
870
871 20150105:
872         The default Unbound configuration now enables remote control
873         using a local socket.  Users who have already enabled the
874         local_unbound service should regenerate their configuration
875         by running "service local_unbound setup" as root.
876
877 20150102:
878         The GNU texinfo and GNU info pages have been removed.
879         To be able to view GNU info pages please install texinfo from ports.
880
881 20141231:
882         Clang, llvm and lldb have been upgraded to 3.5.0 release.
883
884         As of this release, a prerequisite for building clang, llvm and lldb is
885         a C++11 capable compiler and C++11 standard library.  This means that to
886         be able to successfully build the cross-tools stage of buildworld, with
887         clang as the bootstrap compiler, your system compiler or cross compiler
888         should either be clang 3.3 or later, or gcc 4.8 or later, and your
889         system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
890         later.
891
892         On any standard FreeBSD 10.x or 11.x installation, where clang and
893         libc++ are on by default (that is, on x86 or arm), this should work out
894         of the box.
895
896         On 9.x installations where clang is enabled by default, e.g. on x86 and
897         powerpc, libc++ will not be enabled by default, so libc++ should be
898         built (with clang) and installed first.  If both clang and libc++ are
899         missing, build clang first, then use it to build libc++.
900
901         On 8.x and earlier installations, upgrade to 9.x first, and then follow
902         the instructions for 9.x above.
903
904         Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
905         default, and do not build clang.
906
907         Many embedded systems are resource constrained, and will not be able to
908         build clang in a reasonable time, or in some cases at all.  In those
909         cases, cross building bootable systems on amd64 is a workaround.
910
911         This new version of clang introduces a number of new warnings, of which
912         the following are most likely to appear:
913
914         -Wabsolute-value
915
916         This warns in two cases, for both C and C++:
917         * When the code is trying to take the absolute value of an unsigned
918           quantity, which is effectively a no-op, and almost never what was
919           intended.  The code should be fixed, if at all possible.  If you are
920           sure that the unsigned quantity can be safely cast to signed, without
921           loss of information or undefined behavior, you can add an explicit
922           cast, or disable the warning.
923
924         * When the code is trying to take an absolute value, but the called
925           abs() variant is for the wrong type, which can lead to truncation.
926           If you want to disable the warning instead of fixing the code, please
927           make sure that truncation will not occur, or it might lead to unwanted
928           side-effects.
929
930         -Wtautological-undefined-compare and
931         -Wundefined-bool-conversion
932
933         These warn when C++ code is trying to compare 'this' against NULL, while
934         'this' should never be NULL in well-defined C++ code.  However, there is
935         some legacy (pre C++11) code out there, which actively abuses this
936         feature, which was less strictly defined in previous C++ versions.
937
938         Squid and openjdk do this, for example.  The warning can be turned off
939         for C++98 and earlier, but compiling the code in C++11 mode might result
940         in unexpected behavior; for example, the parts of the program that are
941         unreachable could be optimized away.
942
943 20141222:
944         The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
945         kernel sources have been removed. The .h files remain, since some
946         utilities include them. This will need to be fixed later.
947         If "mount -t oldnfs ..." is attempted, it will fail.
948         If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
949         the utilities will report errors.
950
951 20141121:
952         The handling of LOCAL_LIB_DIRS has been altered to skip addition of
953         directories to top level SUBDIR variable when their parent
954         directory is included in LOCAL_DIRS.  Users with build systems with
955         such hierarchies and without SUBDIR entries in the parent
956         directory Makefiles should add them or add the directories to
957         LOCAL_DIRS.
958
959 20141109:
960         faith(4) and faithd(8) have been removed from the base system. Faith
961         has been obsolete for a very long time.
962
963 20141104:
964         vt(4), the new console driver, is enabled by default. It brings
965         support for Unicode and double-width characters, as well as
966         support for UEFI and integration with the KMS kernel video
967         drivers.
968
969         You may need to update your console settings in /etc/rc.conf,
970         most probably the keymap. During boot, /etc/rc.d/syscons will
971         indicate what you need to do.
972
973         vt(4) still has issues and lacks some features compared to
974         syscons(4). See the wiki for up-to-date information:
975           https://wiki.freebsd.org/Newcons
976
977         If you want to keep using syscons(4), you can do so by adding
978         the following line to /boot/loader.conf:
979           kern.vty=sc
980
981 20141102:
982         pjdfstest has been integrated into kyua as an opt-in test suite.
983         Please see share/doc/pjdfstest/README for more details on how to
984         execute it.
985
986 20141009:
987         gperf has been removed from the base system for architectures
988         that use clang. Ports that require gperf will obtain it from the
989         devel/gperf port.
990
991 20140923:
992         pjdfstest has been moved from tools/regression/pjdfstest to
993         contrib/pjdfstest .
994
995 20140922:
996         At svn r271982, The default linux compat kernel ABI has been adjusted
997         to 2.6.18 in support of the linux-c6 compat ports infrastructure
998         update.  If you wish to continue using the linux-f10 compat ports,
999         add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
1000         encouraged to update their linux-compat packages to linux-c6 during
1001         their next update cycle.
1002
1003 20140729:
1004         The ofwfb driver, used to provide a graphics console on PowerPC when
1005         using vt(4), no longer allows mmap() of all physical memory. This
1006         will prevent Xorg on PowerPC with some ATI graphics cards from
1007         initializing properly unless x11-servers/xorg-server is updated to
1008         1.12.4_8 or newer.
1009
1010 20140723:
1011         The xdev targets have been converted to using TARGET and
1012         TARGET_ARCH instead of XDEV and XDEV_ARCH.
1013
1014 20140719:
1015         The default unbound configuration has been modified to address
1016         issues with reverse lookups on networks that use private
1017         address ranges.  If you use the local_unbound service, run
1018         "service local_unbound setup" as root to regenerate your
1019         configuration, then "service local_unbound reload" to load the
1020         new configuration.
1021
1022 20140709:
1023         The GNU texinfo and GNU info pages are not built and installed
1024         anymore, WITH_INFO knob has been added to allow to built and install
1025         them again.
1026         UPDATE: see 20150102 entry on texinfo's removal
1027
1028 20140708:
1029         The GNU readline library is now an INTERNALLIB - that is, it is
1030         statically linked into consumers (GDB and variants) in the base
1031         system, and the shared library is no longer installed.  The
1032         devel/readline port is available for third party software that
1033         requires readline.
1034
1035 20140702:
1036         The Itanium architecture (ia64) has been removed from the list of
1037         known architectures. This is the first step in the removal of the
1038         architecture.
1039
1040 20140701:
1041         Commit r268115 has added NFSv4.1 server support, merged from
1042         projects/nfsv4.1-server.  Since this includes changes to the
1043         internal interfaces between the NFS related modules, a full
1044         build of the kernel and modules will be necessary.
1045         __FreeBSD_version has been bumped.
1046
1047 20140629:
1048         The WITHOUT_VT_SUPPORT kernel config knob has been renamed
1049         WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
1050         which differs from the behaviour controlled by this knob.)
1051
1052 20140619:
1053         Maximal length of the serial number in CTL was increased from 16 to
1054         64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
1055         and ctld, need to be rebuilt to work with a new kernel.
1056
1057 20140606:
1058         The libatf-c and libatf-c++ major versions were downgraded to 0 and
1059         1 respectively to match the upstream numbers.  They were out of
1060         sync because, when they were originally added to FreeBSD, the
1061         upstream versions were not respected.  These libraries are private
1062         and not yet built by default, so renumbering them should be a
1063         non-issue.  However, unclean source trees will yield broken test
1064         programs once the operator executes "make delete-old-libs" after a
1065         "make installworld".
1066
1067         Additionally, the atf-sh binary was made private by moving it into
1068         /usr/libexec/.  Already-built shell test programs will keep the
1069         path to the old binary so they will break after "make delete-old"
1070         is run.
1071
1072         If you are using WITH_TESTS=yes (not the default), wipe the object
1073         tree and rebuild from scratch to prevent spurious test failures.
1074         This is only needed once: the misnumbered libraries and misplaced
1075         binaries have been added to OptionalObsoleteFiles.inc so they will
1076         be removed during a clean upgrade.
1077
1078 20140512:
1079         Clang and llvm have been upgraded to 3.4.1 release.
1080
1081 20140508:
1082         We bogusly installed src.opts.mk in /usr/share/mk. This file should
1083         be removed to avoid issues in the future (and has been added to
1084         ObsoleteFiles.inc).
1085
1086 20140505:
1087         /etc/src.conf now affects only builds of the FreeBSD src tree. In the
1088         past, it affected all builds that used the bsd.*.mk files. The old
1089         behavior was a bug, but people may have relied upon it. To get this
1090         behavior back, you can .include /etc/src.conf from /etc/make.conf
1091         (which is still global and isn't changed). This also changes the
1092         behavior of incremental builds inside the tree of individual
1093         directories. Set MAKESYSPATH to ".../share/mk" to do that.
1094         Although this has survived make universe and some upgrade scenarios,
1095         other upgrade scenarios may have broken. At least one form of
1096         temporary breakage was fixed with MAKESYSPATH settings for buildworld
1097         as well... In cases where MAKESYSPATH isn't working with this
1098         setting, you'll need to set it to the full path to your tree.
1099
1100         One side effect of all this cleaning up is that bsd.compiler.mk
1101         is no longer implicitly included by bsd.own.mk. If you wish to
1102         use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
1103         as well.
1104
1105 20140430:
1106         The lindev device has been removed since /dev/full has been made a
1107         standard device.  __FreeBSD_version has been bumped.
1108
1109 20140424:
1110         The knob WITHOUT_VI was added to the base system, which controls
1111         building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
1112         in order to reorder files share/termcap and didn't build ex(1) as a
1113         build tool, so building/installing with WITH_VI is highly advised for
1114         build hosts for older releases.
1115
1116         This issue has been fixed in stable/9 and stable/10 in r277022 and
1117         r276991, respectively.
1118
1119 20140418:
1120         The YES_HESIOD knob has been removed. It has been obsolete for
1121         a decade. Please move to using WITH_HESIOD instead or your builds
1122         will silently lack HESIOD.
1123
1124 20140405:
1125         The uart(4) driver has been changed with respect to its handling
1126         of the low-level console. Previously the uart(4) driver prevented
1127         any process from changing the baudrate or the CLOCAL and HUPCL
1128         control flags. By removing the restrictions, operators can make
1129         changes to the serial console port without having to reboot.
1130         However, when getty(8) is started on the serial device that is
1131         associated with the low-level console, a misconfigured terminal
1132         line in /etc/ttys will now have a real impact.
1133         Before upgrading the kernel, make sure that /etc/ttys has the
1134         serial console device configured as 3wire without baudrate to
1135         preserve the previous behaviour. E.g:
1136             ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
1137
1138 20140306:
1139         Support for libwrap (TCP wrappers) in rpcbind was disabled by default
1140         to improve performance.  To re-enable it, if needed, run rpcbind
1141         with command line option -W.
1142
1143 20140226:
1144         Switched back to the GPL dtc compiler due to updates in the upstream
1145         dts files not being supported by the BSDL dtc compiler. You will need
1146         to rebuild your kernel toolchain to pick up the new compiler. Core dumps
1147         may result while building dtb files during a kernel build if you fail
1148         to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
1149
1150 20140216:
1151         Clang and llvm have been upgraded to 3.4 release.
1152
1153 20140216:
1154         The nve(4) driver has been removed.  Please use the nfe(4) driver
1155         for NVIDIA nForce MCP Ethernet adapters instead.
1156
1157 20140212:
1158         An ABI incompatibility crept into the libc++ 3.4 import in r261283.
1159         This could cause certain C++ applications using shared libraries built
1160         against the previous version of libc++ to crash.  The incompatibility
1161         has now been fixed, but any C++ applications or shared libraries built
1162         between r261283 and r261801 should be recompiled.
1163
1164 20140204:
1165         OpenSSH will now ignore errors caused by kernel lacking of Capsicum
1166         capability mode support.  Please note that enabling the feature in
1167         kernel is still highly recommended.
1168
1169 20140131:
1170         OpenSSH is now built with sandbox support, and will use sandbox as
1171         the default privilege separation method.  This requires Capsicum
1172         capability mode support in kernel.
1173
1174 20140128:
1175         The libelf and libdwarf libraries have been updated to newer
1176         versions from upstream. Shared library version numbers for
1177         these two libraries were bumped. Any ports or binaries
1178         requiring these two libraries should be recompiled.
1179         __FreeBSD_version is bumped to 1100006.
1180
1181 20140110:
1182         If a Makefile in a tests/ directory was auto-generating a Kyuafile
1183         instead of providing an explicit one, this would prevent such
1184         Makefile from providing its own Kyuafile in the future during
1185         NO_CLEAN builds.  This has been fixed in the Makefiles but manual
1186         intervention is needed to clean an objdir if you use NO_CLEAN:
1187           # find /usr/obj -name Kyuafile | xargs rm -f
1188
1189 20131213:
1190         The behavior of gss_pseudo_random() for the krb5 mechanism
1191         has changed, for applications requesting a longer random string
1192         than produced by the underlying enctype's pseudo-random() function.
1193         In particular, the random string produced from a session key of
1194         enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
1195         be different at the 17th octet and later, after this change.
1196         The counter used in the PRF+ construction is now encoded as a
1197         big-endian integer in accordance with RFC 4402.
1198         __FreeBSD_version is bumped to 1100004.
1199
1200 20131108:
1201         The WITHOUT_ATF build knob has been removed and its functionality
1202         has been subsumed into the more generic WITHOUT_TESTS.  If you were
1203         using the former to disable the build of the ATF libraries, you
1204         should change your settings to use the latter.
1205
1206 20131025:
1207         The default version of mtree is nmtree which is obtained from
1208         NetBSD.  The output is generally the same, but may vary
1209         slightly.  If you found you need identical output adding
1210         "-F freebsd9" to the command line should do the trick.  For the
1211         time being, the old mtree is available as fmtree.
1212
1213 20131014:
1214         libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
1215         This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
1216         1.1.4_8 and verify bsdyml not linked in, before running "make
1217         delete-old-libs":
1218           # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
1219           or
1220           # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
1221
1222 20131010:
1223         The stable/10 branch has been created in subversion from head
1224         revision r256279.
1225
1226 20131010:
1227         The rc.d/jail script has been updated to support jail(8)
1228         configuration file.  The "jail_<jname>_*" rc.conf(5) variables
1229         for per-jail configuration are automatically converted to
1230         /var/run/jail.<jname>.conf before the jail(8) utility is invoked.
1231         This is transparently backward compatible.  See below about some
1232         incompatibilities and rc.conf(5) manual page for more details.
1233
1234         These variables are now deprecated in favor of jail(8) configuration
1235         file.  One can use "rc.d/jail config <jname>" command to generate
1236         a jail(8) configuration file in /var/run/jail.<jname>.conf without
1237         running the jail(8) utility.   The default pathname of the
1238         configuration file is /etc/jail.conf and can be specified by
1239         using $jail_conf or $jail_<jname>_conf variables.
1240
1241         Please note that jail_devfs_ruleset accepts an integer at
1242         this moment.  Please consider to rewrite the ruleset name
1243         with an integer.
1244
1245 20130930:
1246         BIND has been removed from the base system.  If all you need
1247         is a local resolver, simply enable and start the local_unbound
1248         service instead.  Otherwise, several versions of BIND are
1249         available in the ports tree.   The dns/bind99 port is one example.
1250
1251         With this change, nslookup(1) and dig(1) are no longer in the base
1252         system.  Users should instead use host(1) and drill(1) which are
1253         in the base system.  Alternatively, nslookup and dig can
1254         be obtained by installing the dns/bind-tools port.
1255
1256 20130916:
1257         With the addition of unbound(8), a new unbound user is now
1258         required during installworld.  "mergemaster -p" can be used to
1259         add the user prior to installworld, as documented in the handbook.
1260
1261 20130911:
1262         OpenSSH is now built with DNSSEC support, and will by default
1263         silently trust signed SSHFP records.  This can be controlled with
1264         the VerifyHostKeyDNS client configuration setting.  DNSSEC support
1265         can be disabled entirely with the WITHOUT_LDNS option in src.conf.
1266
1267 20130906:
1268         The GNU Compiler Collection and C++ standard library (libstdc++)
1269         are no longer built by default on platforms where clang is the system
1270         compiler.  You can enable them with the WITH_GCC and WITH_GNUCXX
1271         options in src.conf.
1272
1273 20130905:
1274         The PROCDESC kernel option is now part of the GENERIC kernel
1275         configuration and is required for the rwhod(8) to work.
1276         If you are using custom kernel configuration, you should include
1277         'options PROCDESC'.
1278
1279 20130905:
1280         The API and ABI related to the Capsicum framework was modified
1281         in backward incompatible way. The userland libraries and programs
1282         have to be recompiled to work with the new kernel. This includes the
1283         following libraries and programs, but the whole buildworld is
1284         advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl,
1285         kdump, procstat, rwho, rwhod, uniq.
1286
1287 20130903:
1288         AES-NI intrinsic support has been added to gcc.  The AES-NI module
1289         has been updated to use this support.  A new gcc is required to build
1290         the aesni module on both i386 and amd64.
1291
1292 20130821:
1293         The PADLOCK_RNG and RDRAND_RNG kernel options are now devices.
1294         Thus "device padlock_rng" and "device rdrand_rng" should be
1295         used instead of "options PADLOCK_RNG" & "options RDRAND_RNG".
1296
1297 20130813:
1298         WITH_ICONV has been split into two feature sets.  WITH_ICONV now
1299         enables just the iconv* functionality and is now on by default.
1300         WITH_LIBICONV_COMPAT enables the libiconv api and link time
1301         compatibility.  Set WITHOUT_ICONV to build the old way.
1302         If you have been using WITH_ICONV before, you will very likely
1303         need to turn on WITH_LIBICONV_COMPAT.
1304
1305 20130806:
1306         INVARIANTS option now enables DEBUG for code with OpenSolaris and
1307         Illumos origin, including ZFS.  If you have INVARIANTS in your
1308         kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG
1309         explicitly.
1310         DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS)
1311         locks if WITNESS option was set.  Because that generated a lot of
1312         witness(9) reports and all of them were believed to be false
1313         positives, this is no longer done.  New option OPENSOLARIS_WITNESS
1314         can be used to achieve the previous behavior.
1315
1316 20130806:
1317         Timer values in IPv6 data structures now use time_uptime instead
1318         of time_second.  Although this is not a user-visible functional
1319         change, userland utilities which directly use them---ndp(8),
1320         rtadvd(8), and rtsold(8) in the base system---need to be updated
1321         to r253970 or later.
1322
1323 20130802:
1324         find -delete can now delete the pathnames given as arguments,
1325         instead of only files found below them or if the pathname did
1326         not contain any slashes. Formerly, the following error message
1327         would result:
1328
1329         find: -delete: <path>: relative path potentially not safe
1330
1331         Deleting the pathnames given as arguments can be prevented
1332         without error messages using -mindepth 1 or by changing
1333         directory and passing "." as argument to find. This works in the
1334         old as well as the new version of find.
1335
1336 20130726:
1337         Behavior of devfs rules path matching has been changed.
1338         Pattern is now always matched against fully qualified devfs
1339         path and slash characters must be explicitly matched by
1340         slashes in pattern (FNM_PATHNAME). Rulesets involving devfs
1341         subdirectories must be reviewed.
1342
1343 20130716:
1344         The default ARM ABI has changed to the ARM EABI. The old ABI is
1345         incompatible with the ARM EABI and all programs and modules will
1346         need to be rebuilt to work with a new kernel.
1347
1348         To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set.
1349
1350         NOTE: Support for the old ABI will be removed in the future and
1351         users are advised to upgrade.
1352
1353 20130709:
1354         pkg_install has been disconnected from the build if you really need it
1355         you should add WITH_PKGTOOLS in your src.conf(5).
1356
1357 20130709:
1358         Most of network statistics structures were changed to be able
1359         keep 64-bits counters. Thus all tools, that work with networking
1360         statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.)
1361
1362 20130618:
1363         Fix a bug that allowed a tracing process (e.g. gdb) to write
1364         to a memory-mapped file in the traced process's address space
1365         even if neither the traced process nor the tracing process had
1366         write access to that file.
1367
1368 20130615:
1369         CVS has been removed from the base system.  An exact copy
1370         of the code is available from the devel/cvs port.
1371
1372 20130613:
1373         Some people report the following error after the switch to bmake:
1374
1375                 make: illegal option -- J
1376                 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
1377                         ...
1378                 *** [buildworld] Error code 2
1379
1380         this likely due to an old instance of make in
1381         ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE})
1382         which src/Makefile will use that blindly, if it exists, so if
1383         you see the above error:
1384
1385                 rm -rf `make -V MAKEPATH`
1386
1387         should resolve it.
1388
1389 20130516:
1390         Use bmake by default.
1391         Whereas before one could choose to build with bmake via
1392         -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old
1393         make. The goal is to remove these knobs for 10-RELEASE.
1394
1395         It is worth noting that bmake (like gmake) treats the command
1396         line as the unit of failure, rather than statements within the
1397         command line.  Thus '(cd some/where && dosomething)' is safer
1398         than 'cd some/where; dosomething'. The '()' allows consistent
1399         behavior in parallel build.
1400
1401 20130429:
1402         Fix a bug that allows NFS clients to issue READDIR on files.
1403
1404 20130426:
1405         The WITHOUT_IDEA option has been removed because
1406         the IDEA patent expired.
1407
1408 20130426:
1409         The sysctl which controls TRIM support under ZFS has been renamed
1410         from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
1411         enabled by default.
1412
1413 20130425:
1414         The mergemaster command now uses the default MAKEOBJDIRPREFIX
1415         rather than creating it's own in the temporary directory in
1416         order allow access to bootstrapped versions of tools such as
1417         install and mtree.  When upgrading from version of FreeBSD where
1418         the install command does not support -l, you will need to
1419         install a new mergemaster command if mergemaster -p is required.
1420         This can be accomplished with the command (cd src/usr.sbin/mergemaster
1421         && make install).
1422
1423 20130404:
1424         Legacy ATA stack, disabled and replaced by new CAM-based one since
1425         FreeBSD 9.0, completely removed from the sources.  Kernel modules
1426         atadisk and atapi*, user-level tools atacontrol and burncd are
1427         removed.  Kernel option `options ATA_CAM` is now permanently enabled
1428         and removed.
1429
1430 20130319:
1431         SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2)
1432         and socketpair(2). Software, in particular Kerberos, may
1433         automatically detect and use these during building. The resulting
1434         binaries will not work on older kernels.
1435
1436 20130308:
1437         CTL_DISABLE has also been added to the sparc64 GENERIC (for further
1438         information, see the respective 20130304 entry).
1439
1440 20130304:
1441         Recent commits to callout(9) changed the size of struct callout,
1442         so the KBI is probably heavily disturbed. Also, some functions
1443         in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced
1444         by macros. Every kernel module using it won't load, so rebuild
1445         is requested.
1446
1447         The ctl device has been re-enabled in GENERIC for i386 and amd64,
1448         but does not initialize by default (because of the new CTL_DISABLE
1449         option) to save memory.  To re-enable it, remove the CTL_DISABLE
1450         option from the kernel config file or set kern.cam.ctl.disable=0
1451         in /boot/loader.conf.
1452
1453 20130301:
1454         The ctl device has been disabled in GENERIC for i386 and amd64.
1455         This was done due to the extra memory being allocated at system
1456         initialisation time by the ctl driver which was only used if
1457         a CAM target device was created.  This makes a FreeBSD system
1458         unusable on 128MB or less of RAM.
1459
1460 20130208:
1461         A new compression method (lz4) has been merged to -HEAD.  Please
1462         refer to zpool-features(7) for more information.
1463
1464         Please refer to the "ZFS notes" section of this file for information
1465         on upgrading boot ZFS pools.
1466
1467 20130129:
1468         A BSD-licensed patch(1) variant has been added and is installed
1469         as bsdpatch, being the GNU version the default patch.
1470         To inverse the logic and use the BSD-licensed one as default,
1471         while having the GNU version installed as gnupatch, rebuild
1472         and install world with the WITH_BSD_PATCH knob set.
1473
1474 20130121:
1475         Due to the use of the new -l option to install(1) during build
1476         and install, you must take care not to directly set the INSTALL
1477         make variable in your /etc/make.conf, /etc/src.conf, or on the
1478         command line.  If you wish to use the -C flag for all installs
1479         you may be able to add INSTALL+=-C to /etc/make.conf or
1480         /etc/src.conf.
1481
1482 20130118:
1483         The install(1) option -M has changed meaning and now takes an
1484         argument that is a file or path to append logs to.  In the
1485         unlikely event that -M was the last option on the command line
1486         and the command line contained at least two files and a target
1487         directory the first file will have logs appended to it.  The -M
1488         option served little practical purpose in the last decade so its
1489         use is expected to be extremely rare.
1490
1491 20121223:
1492         After switching to Clang as the default compiler some users of ZFS
1493         on i386 systems started to experience stack overflow kernel panics.
1494         Please consider using 'options KSTACK_PAGES=4' in such configurations.
1495
1496 20121222:
1497         GEOM_LABEL now mangles label names read from file system metadata.
1498         Mangling affect labels containing spaces, non-printable characters,
1499         '%' or '"'. Device names in /etc/fstab and other places may need to
1500         be updated.
1501
1502 20121217:
1503         By default, only the 10 most recent kernel dumps will be saved.  To
1504         restore the previous behaviour (no limit on the number of kernel dumps
1505         stored in the dump directory) add the following line to /etc/rc.conf:
1506
1507                 savecore_flags=""
1508
1509 20121201:
1510         With the addition of auditdistd(8), a new auditdistd user is now
1511         required during installworld.  "mergemaster -p" can be used to
1512         add the user prior to installworld, as documented in the handbook.
1513
1514 20121117:
1515         The sin6_scope_id member variable in struct sockaddr_in6 is now
1516         filled by the kernel before passing the structure to the userland via
1517         sysctl or routing socket.  This means the KAME-specific embedded scope
1518         id in sin6_addr.s6_addr[2] is always cleared in userland application.
1519         This behavior can be controlled by net.inet6.ip6.deembed_scopeid.
1520         __FreeBSD_version is bumped to 1000025.
1521
1522 20121105:
1523         On i386 and amd64 systems WITH_CLANG_IS_CC is now the default.
1524         This means that the world and kernel will be compiled with clang
1525         and that clang will be installed as /usr/bin/cc, /usr/bin/c++,
1526         and /usr/bin/cpp.  To disable this behavior and revert to building
1527         with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions
1528         of current may need to bootstrap WITHOUT_CLANG first if the clang
1529         build fails (its compatibility window doesn't extend to the 9 stable
1530         branch point).
1531
1532 20121102:
1533         The IPFIREWALL_FORWARD kernel option has been removed. Its
1534         functionality now turned on by default.
1535
1536 20121023:
1537         The ZERO_COPY_SOCKET kernel option has been removed and
1538         split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP.
1539         NB: SOCKET_SEND_COW uses the VM page based copy-on-write
1540         mechanism which is not safe and may result in kernel crashes.
1541         NB: The SOCKET_RECV_PFLIP mechanism is useless as no current
1542         driver supports disposeable external page sized mbuf storage.
1543         Proper replacements for both zero-copy mechanisms are under
1544         consideration and will eventually lead to complete removal
1545         of the two kernel options.
1546
1547 20121023:
1548         The IPv4 network stack has been converted to network byte
1549         order. The following modules need to be recompiled together
1550         with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4),
1551         pf(4), ipfw(4), ng_ipfw(4), stf(4).
1552
1553 20121022:
1554         Support for non-MPSAFE filesystems was removed from VFS. The
1555         VFS_VERSION was bumped, all filesystem modules shall be
1556         recompiled.
1557
1558 20121018:
1559         All the non-MPSAFE filesystems have been disconnected from
1560         the build. The full list includes: codafs, hpfs, ntfs, nwfs,
1561         portalfs, smbfs, xfs.
1562
1563 20121016:
1564         The interface cloning API and ABI has changed. The following
1565         modules need to be recompiled together with kernel:
1566         ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4),
1567         vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4),
1568         faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4).
1569
1570 20121015:
1571         The sdhci driver was split in two parts: sdhci (generic SD Host
1572         Controller logic) and sdhci_pci (actual hardware driver).
1573         No kernel config modifications are required, but if you
1574         load sdhc as a module you must switch to sdhci_pci instead.
1575
1576 20121014:
1577         Import the FUSE kernel and userland support into base system.
1578
1579 20121013:
1580         The GNU sort(1) program has been removed since the BSD-licensed
1581         sort(1) has been the default for quite some time and no serious
1582         problems have been reported.  The corresponding WITH_GNU_SORT
1583         knob has also gone.
1584
1585 20121006:
1586         The pfil(9) API/ABI for AF_INET family has been changed. Packet
1587         filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled
1588         with new kernel.
1589
1590 20121001:
1591         The net80211(4) ABI has been changed to allow for improved driver
1592         PS-POLL and power-save support.  All wireless drivers need to be
1593         recompiled to work with the new kernel.
1594
1595 20120913:
1596         The random(4) support for the VIA hardware random number
1597         generator (`PADLOCK') is no longer enabled unconditionally.
1598         Add the padlock_rng device in the custom kernel config if
1599         needed.  The GENERIC kernels on i386 and amd64 do include the
1600         device, so the change only affects the custom kernel
1601         configurations.
1602
1603 20120908:
1604         The pf(4) packet filter ABI has been changed. pfctl(8) and
1605         snmp_pf module need to be recompiled to work with new kernel.
1606
1607 20120828:
1608         A new ZFS feature flag "com.delphix:empty_bpobj" has been merged
1609         to -HEAD. Pools that have empty_bpobj in active state can not be
1610         imported read-write with ZFS implementations that do not support
1611         this feature. For more information read the zpool-features(5)
1612         manual page.
1613
1614 20120727:
1615         The sparc64 ZFS loader has been changed to no longer try to auto-
1616         detect ZFS providers based on diskN aliases but now requires these
1617         to be explicitly listed in the OFW boot-device environment variable.
1618
1619 20120712:
1620         The OpenSSL has been upgraded to 1.0.1c.  Any binaries requiring
1621         libcrypto.so.6 or libssl.so.6 must be recompiled.  Also, there are
1622         configuration changes.  Make sure to merge /etc/ssl/openssl.cnf.
1623
1624 20120712:
1625         The following sysctls and tunables have been renamed for consistency
1626         with other variables:
1627           kern.cam.da.da_send_ordered   -> kern.cam.da.send_ordered
1628           kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered
1629
1630 20120628:
1631         The sort utility has been replaced with BSD sort.  For now, GNU sort
1632         is also available as "gnusort" or the default can be set back to
1633         GNU sort by setting WITH_GNU_SORT.  In this case, BSD sort will be
1634         installed as "bsdsort".
1635
1636 20120611:
1637         A new version of ZFS (pool version 5000) has been merged to -HEAD.
1638         Starting with this version the old system of ZFS pool versioning
1639         is superseded by "feature flags". This concept enables forward
1640         compatibility against certain future changes in functionality of ZFS
1641         pools. The first read-only compatible "feature flag" for ZFS pools
1642         is named "com.delphix:async_destroy". For more information
1643         read the new zpool-features(5) manual page.
1644         Please refer to the "ZFS notes" section of this file for information
1645         on upgrading boot ZFS pools.
1646
1647 20120417:
1648         The malloc(3) implementation embedded in libc now uses sources imported
1649         as contrib/jemalloc.  The most disruptive API change is to
1650         /etc/malloc.conf.  If your system has an old-style /etc/malloc.conf,
1651         delete it prior to installworld, and optionally re-create it using the
1652         new format after rebooting.  See malloc.conf(5) for details
1653         (specifically the TUNING section and the "opt.*" entries in the MALLCTL
1654         NAMESPACE section).
1655
1656 20120328:
1657         Big-endian MIPS TARGET_ARCH values no longer end in "eb".  mips64eb
1658         is now spelled mips64.  mipsn32eb is now spelled mipsn32.  mipseb is
1659         now spelled mips.  This is to aid compatibility with third-party
1660         software that expects this naming scheme in uname(3).  Little-endian
1661         settings are unchanged. If you are updating a big-endian mips64 machine
1662         from before this change, you may need to set MACHINE_ARCH=mips64 in
1663         your environment before the new build system will recognize your machine.
1664
1665 20120306:
1666         Disable by default the option VFS_ALLOW_NONMPSAFE for all supported
1667         platforms.
1668
1669 20120229:
1670         Now unix domain sockets behave "as expected" on nullfs(5). Previously
1671         nullfs(5) did not pass through all behaviours to the underlying layer,
1672         as a result if we bound to a socket on the lower layer we could connect
1673         only to the lower path; if we bound to the upper layer we could connect
1674         only to the upper path. The new behavior is one can connect to both the
1675         lower and the upper paths regardless what layer path one binds to.
1676
1677 20120211:
1678         The getifaddrs upgrade path broken with 20111215 has been restored.
1679         If you have upgraded in between 20111215 and 20120209 you need to
1680         recompile libc again with your kernel.  You still need to recompile
1681         world to be able to configure CARP but this restriction already
1682         comes from 20111215.
1683
1684 20120114:
1685         The set_rcvar() function has been removed from /etc/rc.subr.  All
1686         base and ports rc.d scripts have been updated, so if you have a
1687         port installed with a script in /usr/local/etc/rc.d you can either
1688         hand-edit the rcvar= line, or reinstall the port.
1689
1690         An easy way to handle the mass-update of /etc/rc.d:
1691         rm /etc/rc.d/* && mergemaster -i
1692
1693 20120109:
1694         panic(9) now stops other CPUs in the SMP systems, disables interrupts
1695         on the current CPU and prevents other threads from running.
1696         This behavior can be reverted using the kern.stop_scheduler_on_panic
1697         tunable/sysctl.
1698         The new behavior can be incompatible with kern.sync_on_panic.
1699
1700 20111215:
1701         The carp(4) facility has been changed significantly. Configuration
1702         of the CARP protocol via ifconfig(8) has changed, as well as format
1703         of CARP events submitted to devd(8) has changed. See manual pages
1704         for more information. The arpbalance feature of carp(4) is currently
1705         not supported anymore.
1706
1707         Size of struct in_aliasreq, struct in6_aliasreq has changed. User
1708         utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8),
1709         need to be recompiled.
1710
1711 20111122:
1712         The acpi_wmi(4) status device /dev/wmistat has been renamed to
1713         /dev/wmistat0.
1714
1715 20111108:
1716         The option VFS_ALLOW_NONMPSAFE option has been added in order to
1717         explicitely support non-MPSAFE filesystems.
1718         It is on by default for all supported platform at this present
1719         time.
1720
1721 20111101:
1722         The broken amd(4) driver has been replaced with esp(4) in the amd64,
1723         i386 and pc98 GENERIC kernel configuration files.
1724
1725 20110930:
1726         sysinstall has been removed
1727
1728 20110923:
1729         The stable/9 branch created in subversion.  This corresponds to the
1730         RELENG_9 branch in CVS.
1731
1732 COMMON ITEMS:
1733
1734         General Notes
1735         -------------
1736         Avoid using make -j when upgrading.  While generally safe, there are
1737         sometimes problems using -j to upgrade.  If your upgrade fails with
1738         -j, please try again without -j.  From time to time in the past there
1739         have been problems using -j with buildworld and/or installworld.  This
1740         is especially true when upgrading between "distant" versions (eg one
1741         that cross a major release boundary or several minor releases, or when
1742         several months have passed on the -current branch).
1743
1744         Sometimes, obscure build problems are the result of environment
1745         poisoning.  This can happen because the make utility reads its
1746         environment when searching for values for global variables.  To run
1747         your build attempts in an "environmental clean room", prefix all make
1748         commands with 'env -i '.  See the env(1) manual page for more details.
1749
1750         When upgrading from one major version to another it is generally best
1751         to upgrade to the latest code in the currently installed branch first,
1752         then do an upgrade to the new branch. This is the best-tested upgrade
1753         path, and has the highest probability of being successful.  Please try
1754         this approach before reporting problems with a major version upgrade.
1755
1756         When upgrading a live system, having a root shell around before
1757         installing anything can help undo problems. Not having a root shell
1758         around can lead to problems if pam has changed too much from your
1759         starting point to allow continued authentication after the upgrade.
1760
1761         This file should be read as a log of events. When a later event changes
1762         information of a prior event, the prior event should not be deleted.
1763         Instead, a pointer to the entry with the new information should be
1764         placed in the old entry. Readers of this file should also sanity check
1765         older entries before relying on them blindly. Authors of new entries
1766         should write them with this in mind.
1767
1768         ZFS notes
1769         ---------
1770         When upgrading the boot ZFS pool to a new version, always follow
1771         these two steps:
1772
1773         1.) recompile and reinstall the ZFS boot loader and boot block
1774         (this is part of "make buildworld" and "make installworld")
1775
1776         2.) update the ZFS boot block on your boot drive
1777
1778         The following example updates the ZFS boot block on the first
1779         partition (freebsd-boot) of a GPT partitioned drive ada0:
1780         "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1781
1782         Non-boot pools do not need these updates.
1783
1784         To build a kernel
1785         -----------------
1786         If you are updating from a prior version of FreeBSD (even one just
1787         a few days old), you should follow this procedure.  It is the most
1788         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1789
1790         make kernel-toolchain
1791         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1792         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1793
1794         To test a kernel once
1795         ---------------------
1796         If you just want to boot a kernel once (because you are not sure
1797         if it works, or if you want to boot a known bad kernel to provide
1798         debugging information) run
1799         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1800         nextboot -k testkernel
1801
1802         To just build a kernel when you know that it won't mess you up
1803         --------------------------------------------------------------
1804         This assumes you are already running a CURRENT system.  Replace
1805         ${arch} with the architecture of your machine (e.g. "i386",
1806         "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc).
1807
1808         cd src/sys/${arch}/conf
1809         config KERNEL_NAME_HERE
1810         cd ../compile/KERNEL_NAME_HERE
1811         make depend
1812         make
1813         make install
1814
1815         If this fails, go to the "To build a kernel" section.
1816
1817         To rebuild everything and install it on the current system.
1818         -----------------------------------------------------------
1819         # Note: sometimes if you are running current you gotta do more than
1820         # is listed here if you are upgrading from a really old current.
1821
1822         <make sure you have good level 0 dumps>
1823         make buildworld
1824         make kernel KERNCONF=YOUR_KERNEL_HERE
1825                                                         [1]
1826         <reboot in single user>                         [3]
1827         mergemaster -Fp                                 [5]
1828         make installworld
1829         mergemaster -Fi                                 [4]
1830         make delete-old                                 [6]
1831         <reboot>
1832
1833         To cross-install current onto a separate partition
1834         --------------------------------------------------
1835         # In this approach we use a separate partition to hold
1836         # current's root, 'usr', and 'var' directories.   A partition
1837         # holding "/", "/usr" and "/var" should be about 2GB in
1838         # size.
1839
1840         <make sure you have good level 0 dumps>
1841         <boot into -stable>
1842         make buildworld
1843         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1844         <maybe newfs current's root partition>
1845         <mount current's root partition on directory ${CURRENT_ROOT}>
1846         make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
1847         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1848         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1849         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
1850         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1851         <reboot into current>
1852         <do a "native" rebuild/install as described in the previous section>
1853         <maybe install compatibility libraries from ports/misc/compat*>
1854         <reboot>
1855
1856
1857         To upgrade in-place from stable to current
1858         ----------------------------------------------
1859         <make sure you have good level 0 dumps>
1860         make buildworld                                 [9]
1861         make kernel KERNCONF=YOUR_KERNEL_HERE           [8]
1862                                                         [1]
1863         <reboot in single user>                         [3]
1864         mergemaster -Fp                                 [5]
1865         make installworld
1866         mergemaster -Fi                                 [4]
1867         make delete-old                                 [6]
1868         <reboot>
1869
1870         Make sure that you've read the UPDATING file to understand the
1871         tweaks to various things you need.  At this point in the life
1872         cycle of current, things change often and you are on your own
1873         to cope.  The defaults can also change, so please read ALL of
1874         the UPDATING entries.
1875
1876         Also, if you are tracking -current, you must be subscribed to
1877         freebsd-current@freebsd.org.  Make sure that before you update
1878         your sources that you have read and understood all the recent
1879         messages there.  If in doubt, please track -stable which has
1880         much fewer pitfalls.
1881
1882         [1] If you have third party modules, such as vmware, you
1883         should disable them at this point so they don't crash your
1884         system on reboot.
1885
1886         [3] From the bootblocks, boot -s, and then do
1887                 fsck -p
1888                 mount -u /
1889                 mount -a
1890                 cd src
1891                 adjkerntz -i            # if CMOS is wall time
1892         Also, when doing a major release upgrade, it is required that
1893         you boot into single user mode to do the installworld.
1894
1895         [4] Note: This step is non-optional.  Failure to do this step
1896         can result in a significant reduction in the functionality of the
1897         system.  Attempting to do it by hand is not recommended and those
1898         that pursue this avenue should read this file carefully, as well
1899         as the archives of freebsd-current and freebsd-hackers mailing lists
1900         for potential gotchas.  The -U option is also useful to consider.
1901         See mergemaster(8) for more information.
1902
1903         [5] Usually this step is a noop.  However, from time to time
1904         you may need to do this if you get unknown user in the following
1905         step.  It never hurts to do it all the time.  You may need to
1906         install a new mergemaster (cd src/usr.sbin/mergemaster && make
1907         install) after the buildworld before this step if you last updated
1908         from current before 20130425 or from -stable before 20130430.
1909
1910         [6] This only deletes old files and directories. Old libraries
1911         can be deleted by "make delete-old-libs", but you have to make
1912         sure that no program is using those libraries anymore.
1913
1914         [8] The new kernel must be able to run existing binaries used by
1915         an installworld.  When upgrading across major versions, the new
1916         kernel's configuration must include the correct COMPAT_FREEBSD<n>
1917         option for existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x
1918         binaries).  Failure to do so may leave you with a system that is
1919         hard to boot to recover.  A GENERIC kernel will include suitable
1920         compatibility options to run binaries from older branches.
1921
1922         Make sure that you merge any new devices from GENERIC since the
1923         last time you updated your kernel config file.
1924
1925         [9] When checking out sources, you must include the -P flag to have
1926         cvs prune empty directories.
1927
1928         If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1929         "?=" instead of the "=" assignment operator, so that buildworld can
1930         override the CPUTYPE if it needs to.
1931
1932         MAKEOBJDIRPREFIX must be defined in an environment variable, and
1933         not on the command line, or in /etc/make.conf.  buildworld will
1934         warn if it is improperly defined.
1935 FORMAT:
1936
1937 This file contains a list, in reverse chronological order, of major
1938 breakages in tracking -current.  It is not guaranteed to be a complete
1939 list of such breakages, and only contains entries since September 23, 2011.
1940 If you need to see UPDATING entries from before that date, you will need
1941 to fetch an UPDATING file from an older FreeBSD release.
1942
1943 Copyright information:
1944
1945 Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1946
1947 Redistribution, publication, translation and use, with or without
1948 modification, in full or in part, in any form or format of this
1949 document are permitted without further permission from the author.
1950
1951 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1952 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1953 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1954 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1955 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1956 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1957 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1958 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1959 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1960 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1961 POSSIBILITY OF SUCH DAMAGE.
1962
1963 Contact Warner Losh if you have any questions about your use of
1964 this document.
1965
1966 $FreeBSD$