]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - UPDATING
Add an UPDATING message for r342286.
[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 NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
20         FreeBSD 13.x has many debugging features turned on, in both the kernel
21         and userland.  These features attempt to detect incorrect use of
22         system primitives, and encourage loud failure through extra sanity
23         checking and fail stop semantics.  They also substantially impact
24         system performance.  If you want to do performance measurement,
25         benchmarking, and optimization, you'll want to turn them off.  This
26         includes various WITNESS- related kernel options, INVARIANTS, malloc
27         debugging flags in userland, and various verbose features in the
28         kernel.  Many developers choose to disable these features on build
29         machines to maximize performance.  (To completely disable malloc
30         debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely
31         disable the most expensive debugging functionality run
32         "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
33
34 20181220:
35         r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport
36         in the same as it is applied to NFSv2 and 3.  This implies that NFSv4
37         servers that have vfs.nfsd.nfs_privport set will only allow mounts
38         from clients using a reserved port#. Since both the FreeBSD and Linux
39         NFSv4 clients use reserved port#s by default, this should not affect
40         most NFSv4 mounts.
41
42 20181219:
43         The XLP config has been removed. We can't support 64-bit atomics in this
44         kernel because it is running in 32-bit mode. XLP users must transition
45         to running a 64-bit kernel (XLP64 or XLPN32).
46
47         The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is
48         the preferred emulator today and we don't need two different ones.
49
50         The old sibyte / swarm / Broadcom BCM1250 support has been
51         removed from the mips port.
52
53 20181211:
54         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
55         7.0.1.  Please see the 20141231 entry below for information about
56         prerequisites and upgrading, if you are not already using clang 3.5.0
57         or higher.
58
59 20181211:
60         Remove the timed and netdate programs from the base tree.  Setting
61         the time with these deamons has been obsolete for over a decade.
62
63 20181126:
64         On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld
65         linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as
66         it produces broken binaries when ifuncs are in use.  Users needing
67         GNU ld should install the binutils port or package.
68
69 20181123:
70         The BSD crtbegin and crtend code has been enabled by default. It has
71         had extensive testing on amd64, arm64, and i386. It can be disabled
72         by building a world with -DWITHOUT_BSD_CRTBEGIN.
73
74 20181115:
75         The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue)
76         has been converted to a port (misc/ctm) and will be removed from
77         FreeBSD-13.  It is available as a package (ctm) for all supported
78         FreeBSD versions.
79
80 20181110:
81         The default newsyslog.conf(5) file has been changed to only include
82         files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if
83         the filenames end in '.conf' and do not begin with a '.'.
84
85         You should check the configuration files in these two directories match
86         this naming convention. You can verify which configuration files are
87         being included using the command:
88                 $ newsyslog -Nrv
89
90 20181015:
91         Ports for the DRM modules have been simplified. Now, amd64 users should
92         just install the drm-kmod port. All others should install
93         drm-legacy-kmod.
94
95         Graphics hardware that's newer than about 2010 usually works with
96         drm-kmod.  For hardware older than 2013, however, some users will need
97         to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older
98         than 2008 usually only works in drm-legacy-kmod. The graphics team can
99         only commit to hardware made since 2013 due to the complexity of the
100         market and difficulty to test all the older cards effectively. If you
101         have hardware supported by drm-kmod, you are strongly encouraged to use
102         that as you will get better support.
103
104         Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined
105         elsewhere, the drm and drm2 modules will be eliminated from the src base
106         soon (with a limited exception for arm). Please update to the package asap
107         and report any issues to x11@freebsd.org.
108
109         Generally, anybody using the drm*-kmod packages should add
110         WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty
111         cross-threading surprises, especially with automatic driver
112         loading from X11 startup. These will become the defaults in 13-current
113         shortly.
114
115 20181012:
116         The ixlv(4) driver has been renamed to iavf(4).  As a consequence,
117         custom kernel and module loading configuration files must be updated
118         accordingly.  Moreover, interfaces previous presented as ixlvN to the
119         system are now exposed as iavfN and network configuration files must
120         be adjusted as necessary.
121
122 20181009:
123         OpenSSL has been updated to version 1.1.1.  This update included
124         additional various API changes througout the base system.  It is
125         important to rebuild third-party software after upgrading.  The value
126         of __FreeBSD_version has been bumped accordingly.
127
128 20181006:
129         The legacy DRM modules and drivers have now been added to the loader's
130         module blacklist, in favor of loading them with kld_list in rc.conf(5).
131         The module blacklist may be overridden with the loader.conf(5)
132         'module_blacklist' variable, but loading them via rc.conf(5) is strongly
133         encouraged.
134
135 20181002:
136         The cam(4) based nda(4) driver will be used over nvd(4) by default on
137         powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or
138         loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing
139         driver.  Make sure to edit /boot/etc/kboot.conf and fstab to use the
140         nda device name.
141
142 20180913:
143         Reproducible build mode is now on by default, in preparation for
144         FreeBSD 12.0.  This eliminates build metadata such as the user,
145         host, and time from the kernel (and uname), unless the working tree
146         corresponds to a modified checkout from a version control system.
147         The previous behavior can be obtained by setting the /etc/src.conf
148         knob WITHOUT_REPRODUCIBLE_BUILD.
149
150 20180826:
151         The Yarrow CSPRNG has been removed from the kernel as it has not been
152         supported by its designers since at least 2003. Fortuna has been the
153         default since FreeBSD-11.
154
155 20180822:
156         devctl freeze/thaw have gone into the tree, the rc scripts have been
157         updated to use them and devmatch has been changed.  You should update
158         kernel, userland and rc scripts all at the same time.
159
160 20180818:
161         The default interpreter has been switched from 4th to Lua.
162         LOADER_DEFAULT_INTERP, documented in build(7), will override the default
163         interpreter.  If you have custom FORTH code you will need to set
164         LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in
165         src.conf for the build.  This will create default hard links between
166         loader and loader_4th instead of loader and loader_lua, the new default.
167         If you are using UEFI it will create the proper hard link to loader.efi.
168
169         bhyve uses userboot.so. It remains 4th-only until some issues are solved
170         regarding coexisting with multiple versions of FreeBSD are resolved.
171
172 20180815:
173         ls(1) now respects the COLORTERM environment variable used in other
174         systems and software to indicate that a colored terminal is both
175         supported and desired.  If ls(1) is suddenly emitting colors, they may
176         be disabled again by either removing the unwanted COLORTERM from your
177         environment, or using `ls --color=never`.  The ls(1) specific CLICOLOR
178         may not be observed in a future release.
179
180 20180808:
181         The default pager for most commands has been changed to "less".  To
182         restore the old behavior, set PAGER="more" and MANPAGER="more -s" in
183         your environment.
184
185 20180731:
186         The jedec_ts(4) driver has been removed. A superset of its functionality
187         is available in the jedec_dimm(4) driver, and the manpage for that
188         driver includes migration instructions. If you have "device jedec_ts"
189         in your kernel configuration file, it must be removed.
190
191 20180730:
192         amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default.
193         This should have no effect if the kernel is booted via BIOS/legacy boot.
194         EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system
195         has a buggy firmware that prevents a successful boot due to use of
196         runtime services.
197
198 20180727:
199         Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale
200         support has been removed from the tree. These ports were
201         obsolete and/or known to be broken for many years.
202
203 20180723:
204         loader.efi has been augmented to participate more fully in the
205         UEFI boot manager protocol. loader.efi will now look at the
206         BootXXXX environment variable to determine if a specific kernel
207         or root partition was specified. XXXX is derived from BootCurrent.
208         efibootmgr(8) manages these standard UEFI variables.
209
210 20180720:
211         zfsloader's functionality has now been folded into loader.
212         zfsloader is no longer necessary once you've updated your
213         boot blocks. For a transition period, we will install a
214         hardlink for zfsloader to loader to allow a smooth transition
215         until the boot blocks can be updated (hard link because old
216         zfs boot blocks don't understand symlinks).
217
218 20180719:
219         ARM64 now have efifb support, if you want to have serial console
220         on your arm64 board when an screen is connected and the bootloader
221         setup a frambuffer for us to use, just add :
222         boot_serial=YES
223         boot_multicons=YES
224         in /boot/loader.conf
225         For Raspberry Pi 3 (RPI) users, this is needed even if you don't have
226         an screen connected as the firmware will setup a framebuffer are that
227         u-boot will expose as an EFI framebuffer.
228
229 20180719:
230         New uid:gid added, ntpd:ntpd (123:123).  Be sure to run mergemaster
231         or take steps to update /etc/passwd before doing installworld on
232         existing systems.  Do not skip the "mergemaster -Fp" step before
233         installworld, as described in the update procedures near the bottom
234         of this document.  Also, rc.d/ntpd now starts ntpd(8) as user ntpd
235         if the new mac_ntpd(4) policy is available, unless ntpd_flags or
236         the ntp config file contain options that change file/dir locations.
237         When such options (e.g., "statsdir" or "crypto") are used, ntpd can
238         still be run as non-root by setting ntpd_user=ntpd in rc.conf, after
239         taking steps to ensure that all required files/dirs are accessible
240         by the ntpd user.
241
242 20180717:
243         Big endian arm support has been removed.
244
245 20180711:
246         The static environment setup in kernel configs is no longer mutually
247         exclusive with the loader(8) environment by default.  In order to
248         restore the previous default behavior of disabling the loader(8)
249         environment if a static environment is present, you must specify
250         loader_env.disabled=1 in the static environment.
251
252 20180705:
253         The ABI of syscalls used by management tools like sockstat and
254         netstat has been broken to allow 32-bit binaries to work on
255         64-bit kernels without modification.  These programs will need
256         to match the kernel in order to function.  External programs may
257         require minor modifications to accommodate a change of type in
258         structures from pointers to 64-bit virtual addresses.
259
260 20180702:
261         On i386 and amd64 atomics are now inlined. Out of tree modules using
262         atomics will need to be rebuilt.
263
264 20180701:
265         The '%I' format in the kern.corefile sysctl limits the number of
266         core files that a process can generate to the number stored in the
267         debug.ncores sysctl. The '%I' format is replaced by the single digit
268         index. Previously, if all indexes were taken the kernel would overwrite
269         only a core file with the highest index in a filename.
270         Currently the system will create a new core file if there is a free
271         index or if all slots are taken it will overwrite the oldest one.
272
273 20180630:
274         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
275         6.0.1.  Please see the 20141231 entry below for information about
276         prerequisites and upgrading, if you are not already using clang 3.5.0
277         or higher.
278
279 20180628:
280         r335753 introduced a new quoting method. However, etc/devd/devmatch.conf
281         needed to be changed to work with it. This change was made with r335763
282         and requires a mergemaster / etcupdate / etc to update the installed file.
283
284 20180612:
285         r334930 changed the interface between the NFS modules, so they all
286         need to be rebuilt.  r335018 did a __FreeBSD_version bump for this.
287
288 20180530:
289         As of r334391 lld is the default amd64 system linker; it is installed
290         as /usr/bin/ld.  Kernel build workarounds (see 20180510 entry) are no
291         longer necessary.
292
293 20180530:
294         The kernel / userland interface for devinfo changed, so you'll
295         need a new kernel and userland as a pair for it to work (rebuilding
296         lib/libdevinfo is all that's required). devinfo and devmatch will
297         not work, but everything else will when there's a mismatch.
298
299 20180523:
300         The on-disk format for hwpmc callchain records has changed to include
301         threadid corresponding to a given record. This changes the field offsets
302         and thus requires that libpmcstat be rebuilt before using a kernel
303         later than r334108.
304
305 20180517:
306         The vxge(4) driver has been removed.  This driver was introduced into
307         HEAD one week before the Exar left the Ethernet market and is not
308         known to be used.  If you have device vxge in your kernel config file
309         it must be removed.
310
311 20180510:
312         The amd64 kernel now requires a ld that supports ifunc to produce a
313         working kernel, either lld or a newer binutils. lld is built by default
314         on amd64, and the 'buildkernel' target uses it automatically. However,
315         it is not the default linker, so building the kernel the traditional
316         way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for
317         binutils port/package). lld will soon be default, and this requirement
318         will go away.
319
320         NOTE: As of r334391 lld is the default system linker on amd64, and no
321         workaround is necessary.
322
323 20180508:
324         The nxge(4) driver has been removed.  This driver was for PCI-X 10g
325         cards made by s2io/Neterion.  The company was aquired by Exar and
326         no longer sells or supports Ethernet products.  If you have device
327         nxge in your kernel config file it must be removed.
328
329 20180504:
330         The tz database (tzdb) has been updated to 2018e.  This version more
331         correctly models time stamps in time zones with negative DST such as
332         Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and
333         Africa/Windhoek (1994/2017).  This does not affect the UT offsets, only
334         time zone abbreviations and the tm_isdst flag.
335
336 20180502:
337         The ixgb(4) driver has been removed.  This driver was for an early and
338         uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel
339         quickly shifted to the long lived ixgbe family.  If you have device
340         ixgb in your kernel config file it must be removed.
341
342 20180501:
343         The lmc(4) driver has been removed.  This was a WAN interface
344         card that was already reportedly rare in 2003, and had an ambiguous
345         license.  If you have device lmc in your kernel config file it must
346         be removed.
347
348 20180413:
349         Support for Arcnet networks has been removed.  If you have device
350         arcnet or device cm in your kernel config file they must be
351         removed.
352
353 20180411:
354         Support for FDDI networks has been removed.  If you have device
355         fddi or device fpa in your kernel config file they must be
356         removed.
357
358 20180406:
359         In addition to supporting RFC 3164 formatted messages, the
360         syslogd(8) service is now capable of parsing RFC 5424 formatted
361         log messages. The main benefit of using RFC 5424 is that clients
362         may now send log messages with timestamps containing year numbers,
363         microseconds and time zone offsets.
364
365         Similarly, the syslog(3) C library function has been altered to
366         send RFC 5424 formatted messages to the local system logging
367         daemon. On systems using syslogd(8), this change should have no
368         negative impact, as long as syslogd(8) and the C library are
369         updated at the same time. On systems using a different system
370         logging daemon, it may be necessary to make configuration
371         adjustments, depending on the software used.
372
373         When using syslog-ng, add the 'syslog-protocol' flag to local
374         input sources to enable parsing of RFC 5424 formatted messages:
375
376                 source src {
377                         unix-dgram("/var/run/log" flags(syslog-protocol));
378                 }
379
380         When using rsyslog, disable the 'SysSock.UseSpecialParser' option
381         of the 'imuxsock' module to let messages be processed by the
382         regular RFC 3164/5424 parsing pipeline:
383
384                 module(load="imuxsock" SysSock.UseSpecialParser="off")
385
386         Do note that these changes only affect communication between local
387         applications and syslogd(8). The format that syslogd(8) uses to
388         store messages on disk or forward messages to other systems
389         remains unchanged. syslogd(8) still uses RFC 3164 for these
390         purposes. Options to customize this behaviour will be added in the
391         future. Utilities that process log files stored in /var/log are
392         thus expected to continue to function as before.
393
394         __FreeBSD_version has been incremented to 1200061 to denote this
395         change.
396
397 20180328:
398         Support for token ring networks has been removed. If you
399         have "device token" in your kernel config you should remove
400         it. No device drivers supported token ring.
401
402 20180323:
403         makefs was modified to be able to tag ISO9660 El Torito boot catalog
404         entries as EFI instead of overloading the i386 tag as done previously.
405         The amd64 mkisoimages.sh script used to build amd64 ISO images for
406         release was updated to use this. This may mean that makefs must be
407         updated before "make cdrom" can be run in the release directory. This
408         should be as simple as:
409
410                 $ cd $SRCDIR/usr.sbin/makefs
411                 $ make depend all install
412
413 20180212:
414         FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for
415         now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf.
416         Co-existance for the transition period will come shortly. Booting is a
417         complex environment and test coverage for Lua-enabled loaders has been
418         thin, so it would be prudent to assume it might not work and make
419         provisions for backup boot methods.
420
421 20180211:
422         devmatch functionality has been turned on in devd. It will automatically
423         load drivers for unattached devices. This may cause unexpected drivers to
424         be loaded. Please report any problems to current@ and imp@freebsd.org.
425
426 20180114:
427         Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to
428         6.0.0.  Please see the 20141231 entry below for information about
429         prerequisites and upgrading, if you are not already using clang 3.5.0
430         or higher.
431
432 20180110:
433         LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker.
434         This means it is used to link the kernel and userland libraries and
435         executables, but is not yet installed as /usr/bin/ld by default.
436
437         To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set
438         WITHOUT_LLD_BOOTSTRAP=yes
439
440 20180110:
441         On i386, pmtimer has been removed. Its functionality has been folded
442         into apm. It was a no-op on ACPI in current for a while now (but was still
443         needed on i386 in FreeBSD 11 and earlier). Users may need to remove it
444         from kernel config files.
445
446 20180104:
447         The use of RSS hash from the network card aka flowid has been
448         disabled by default for lagg(4) as it's currently incompatible with
449         the lacp and loadbalance protocols.
450
451         This can be re-enabled by setting the following in loader.conf:
452         net.link.lagg.default_use_flowid="1"
453
454 20180102:
455         The SW_WATCHDOG option is no longer necessary to enable the
456         hardclock-based software watchdog if no hardware watchdog is
457         configured. As before, SW_WATCHDOG will cause the software
458         watchdog to be enabled even if a hardware watchdog is configured.
459
460 20171215:
461         r326887 fixes the issue described in the 20171214 UPDATING entry.
462         r326888 flips the switch back to building GELI support always.
463
464 20171214:
465         r362593 broke ZFS + GELI support for reasons unknown. However,
466         it also broke ZFS support generally, so GELI has been turned off
467         by default as the lesser evil in r326857. If you boot off ZFS and/or
468         GELI, it might not be a good time to update.
469
470 20171125:
471         PowerPC users must update loader(8) by rebuilding world before
472         installing a new kernel, as the protocol connecting them has
473         changed. Without the update, loader metadata will not be passed
474         successfully to the kernel and users will have to enter their
475         root partition at the kernel mountroot prompt to continue booting.
476         Newer versions of loader can boot old kernels without issue.
477
478 20171110:
479         The LOADER_FIREWIRE_SUPPORT build variable as been renamed to
480         WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed
481         to WITH/OUT_LOADER_GELI.
482
483 20171106:
484         The naive and non-compliant support of posix_fallocate(2) in ZFS
485         has been removed as of r325320.  The system call now returns EINVAL
486         when used on a ZFS file.  Although the new behavior complies with the
487         standard, some consumers are not prepared to cope with it.
488         One known victim is lld prior to r325420.
489
490 20171102:
491         Building in a FreeBSD src checkout will automatically create object
492         directories now rather than store files in the current directory if
493         'make obj' was not ran.  Calling 'make obj' is no longer necessary.
494         This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in
495         /etc/src-env.conf (not /etc/src.conf), or passing the option in the
496         environment.
497
498 20171101:
499         The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native
500         builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified
501         /usr/obj/<srcdir>/<arch>.  This behavior can be changed to the old
502         format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf,
503         the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building.
504         The UNIFIED_OBJDIR option is a transitional feature that will be
505         removed for 12.0 release; please migrate to the new format for any
506         tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather
507         than hardcoding paths.
508
509 20171028:
510         The native-xtools target no longer installs the files by default to the
511         OBJDIR.  Use the native-xtools-install target with a DESTDIR to install
512         to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin.
513
514 20171021:
515         As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT
516         options are changing from controlling the build if defined / undefined
517         to controlling the build with explicit 'yes' or 'no' values. They will
518         shift to WITH/WITHOUT options to match other options in the system.
519
520 20171010:
521         libstand has turned into a private library for sys/boot use only.
522         It is no longer supported as a public interface outside of sys/boot.
523
524 20171005:
525         The arm port has split armv6 into armv6 and armv7. armv7 is now
526         a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system
527         and are running a kernel from before r324363, you will need to add
528         MACHINE_ARCH=armv7 to 'make buildworld' to do a native build.
529
530 20171003:
531         When building multiple kernels using KERNCONF, non-existent KERNCONF
532         files will produce an error and buildkernel will fail. Previously
533         missing KERNCONF files silently failed giving no indication as to
534         why, only to subsequently discover during installkernel that the
535         desired kernel was never built in the first place.
536
537 20170912:
538         The default serial number format for CTL LUNs has changed.  This will
539         affect users who use /dev/diskid/* device nodes, or whose FibreChannel
540         or iSCSI clients care about their LUNs' serial numbers.  Users who
541         require serial number stability should hardcode serial numbers in
542         /etc/ctl.conf .
543
544 20170912:
545         For 32-bit arm compiled for hard-float support, soft-floating point
546         binaries now always get their shared libraries from
547         LD_SOFT_LIBRARY_PATH (in the past, this was only used if
548         /usr/libsoft also existed). Only users with a hard-float ld.so, but
549         soft-float everything else should be affected.
550
551 20170826:
552         The geli password typed at boot is now hidden.  To restore the previous
553         behavior, see geli(8) for configuration options.
554
555 20170825:
556         Move PMTUD blackhole counters to TCPSTATS and remove them from bare
557         sysctl values.  Minor nit, but requires a rebuild of both world/kernel
558         to complete.
559
560 20170814:
561         "make check" behavior (made in ^/head@r295380) has been changed to
562         execute from a limited sandbox, as opposed to executing from
563         ${TESTSDIR}.
564
565         Behavioral changes:
566         - The "beforecheck" and "aftercheck" targets are now specified.
567         - ${CHECKDIR} (added in commit noted above) has been removed.
568         - Legacy behavior can be enabled by setting
569           WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment.
570
571         If the limited sandbox mode is enabled, "make check" will execute
572         "make distribution", then install, execute the tests, and clean up the
573         sandbox if successful.
574
575         The "make distribution" and "make install" targets are typically run as
576         root to set appropriate permissions and ownership at installation time.
577         The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the
578         environment if executing "make check" with limited sandbox mode using
579         an unprivileged user.
580
581 20170808:
582         Since the switch to GPT disk labels, fsck for UFS/FFS has been
583         unable to automatically find alternate superblocks. As of r322297,
584         the information needed to find alternate superblocks has been
585         moved to the end of the area reserved for the boot block.
586         Filesystems created with a newfs of this vintage or later
587         will create the recovery information. If you have a filesystem
588         created prior to this change and wish to have a recovery block
589         created for your filesystem, you can do so by running fsck in
590         foreground mode (i.e., do not use the -p or -y options). As it
591         starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS''
592         to which you should answer yes.
593
594 20170728:
595         As of r321665, an NFSv4 server configuration that services
596         Kerberos mounts or clients that do not support the uid/gid in
597         owner/owner_group string capability, must explicitly enable
598         the nfsuserd daemon by adding nfsuserd_enable="YES" to the
599         machine's /etc/rc.conf file.
600
601 20170722:
602         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0.
603         Please see the 20141231 entry below for information about prerequisites
604         and upgrading, if you are not already using clang 3.5.0 or higher.
605
606 20170701:
607         WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the
608         r-commands (rlogin, rsh, etc.) to be built with the base system.
609
610 20170625:
611         The FreeBSD/powerpc platform now uses a 64-bit type for time_t.  This is
612         a very major ABI incompatible change, so users of FreeBSD/powerpc must
613         be careful when performing source upgrades.  It is best to run
614         'make installworld' from an alternate root system, either a live
615         CD/memory stick, or a temporary root partition.  Additionally, all ports
616         must be recompiled.  powerpc64 is largely unaffected, except in the case
617         of 32-bit compatibility.  All 32-bit binaries will be affected.
618
619 20170623:
620         Forward compatibility for the "ino64" project have been committed. This
621         will allow most new binaries to run on older kernels in a limited
622         fashion.  This prevents many of the common foot-shooting actions in the
623         upgrade as well as the limited ability to roll back the kernel across
624         the ino64 upgrade. Complicated use cases may not work properly, though
625         enough simpler ones work to allow recovery in most situations.
626
627 20170620:
628         Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC
629         if you require the GPL compiler.
630
631 20170618:
632         The internal ABI used for communication between the NFS kernel modules
633         was changed by r320085, so __FreeBSD_version was bumped to
634         ensure all the NFS related modules are updated together.
635
636 20170617:
637         The ABI of struct event was changed by extending the data
638         member to 64bit and adding ext fields.  For upgrade, same
639         precautions as for the entry 20170523 "ino64" must be
640         followed.
641
642 20170531:
643         The GNU roff toolchain has been removed from base. To render manpages
644         which are not supported by mandoc(1), man(1) can fallback on GNU roff
645         from ports (and recommends to install it).
646         To render roff(7) documents, consider using GNU roff from ports or the
647         heirloom doctools roff toolchain from ports via pkg install groff or
648         via pkg install heirloom-doctools.
649
650 20170524:
651         The ath(4) and ath_hal(4) modules now build piecemeal to allow for
652         smaller runtime footprint builds.  This is useful for embedded systems
653         which only require one chipset support.
654
655         If you load it as a module, make sure this is in /boot/loader.conf:
656
657         if_ath_load="YES"
658
659         This will load the HAL, all chip/RF backends and if_ath_pci.
660         If you have if_ath_pci in /boot/loader.conf, ensure it is after
661         if_ath or it will not load any HAL chipset support.
662
663         If you want to selectively load things (eg on ye cheape ARM/MIPS
664         platforms where RAM is at a premium) you should:
665
666         * load ath_hal
667         * load the chip modules in question
668         * load ath_rate, ath_dfs
669         * load ath_main
670         * load if_ath_pci and/or if_ath_ahb depending upon your particular
671           bus bind type - this is where probe/attach is done.
672
673         For further comments/feedback, poke adrian@ .
674
675 20170523:
676         The "ino64" 64-bit inode project has been committed, which extends
677         a number of types to 64 bits.  Upgrading in place requires care and
678         adherence to the documented upgrade procedure.
679
680         If using a custom kernel configuration ensure that the
681         COMPAT_FREEBSD11 option is included (as during the upgrade the
682         system will be running the ino64 kernel with the existing world).
683
684         For the safest in-place upgrade begin by removing previous build
685         artifacts via "rm -rf /usr/obj/*".   Then, carefully follow the
686         full procedure documented below under the heading "To rebuild
687         everything and install it on the current system."  Specifically,
688         a reboot is required after installing the new kernel before
689         installing world.
690
691 20170424:
692         The NATM framework including the en(4), fatm(4), hatm(4), and
693         patm(4) devices has been removed.  Consumers should plan a
694         migration before the end-of-life date for FreeBSD 11.
695
696 20170420:
697         GNU diff has been replaced by a BSD licensed diff. Some features of GNU
698         diff has not been implemented, if those are needed a newer version of
699         GNU diff is available via the diffutils package under the gdiff name.
700
701 20170413:
702         As of r316810 for ipfilter, keep frags is no longer assumed when
703         keep state is specified in a rule. r316810 aligns ipfilter with
704         documentation in man pages separating keep frags from keep state.
705         This allows keep state to be specified without forcing keep frags
706         and allows keep frags to be specified independently of keep state.
707         To maintain previous behaviour, also specify keep frags with
708         keep state (as documented in ipf.conf.5).
709
710 20170407:
711         arm64 builds now use the base system LLD 4.0.0 linker by default,
712         instead of requiring that the aarch64-binutils port or package be
713         installed. To continue using aarch64-binutils, set
714         CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin .
715
716 20170405:
717         The UDP optimization in entry 20160818 that added the sysctl
718         net.inet.udp.require_l2_bcast has been reverted.  L2 broadcast
719         packets will no longer be treated as L3 broadcast packets.
720
721 20170331:
722         Binds and sends to the loopback addresses, IPv6 and IPv4, will now
723         use any explicitly assigned loopback address available in the jail
724         instead of using the first assigned address of the jail.
725
726 20170329:
727         The ctl.ko module no longer implements the iSCSI target frontend:
728         cfiscsi.ko does instead.
729
730         If building cfiscsi.ko as a kernel module, the module can be loaded
731         via one of the following methods:
732         - `cfiscsi_load="YES"` in loader.conf(5).
733         - Add `cfiscsi` to `$kld_list` in rc.conf(5).
734         - ctladm(8)/ctld(8), when compiled with iSCSI support
735           (`WITH_ISCSI=yes` in src.conf(5))
736
737         Please see cfiscsi(4) for more details.
738
739 20170316:
740         The mmcsd.ko module now additionally depends on geom_flashmap.ko.
741         Also, mmc.ko and mmcsd.ko need to be a matching pair built from the
742         same source (previously, the dependency of mmcsd.ko on mmc.ko was
743         missing, but mmcsd.ko now will refuse to load if it is incompatible
744         with mmc.ko).
745
746 20170315:
747         The syntax of ipfw(8) named states was changed to avoid ambiguity.
748         If you have used named states in the firewall rules, you need to modify
749         them after installworld and before rebooting. Now named states must
750         be prefixed with colon.
751
752 20170311:
753         The old drm (sys/dev/drm/) drivers for i915 and radeon have been
754         removed as the userland we provide cannot use them. The KMS version
755         (sys/dev/drm2) supports the same hardware.
756
757 20170302:
758         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0.
759         Please see the 20141231 entry below for information about prerequisites
760         and upgrading, if you are not already using clang 3.5.0 or higher.
761
762 20170221:
763         The code that provides support for ZFS .zfs/ directory functionality
764         has been reimplemented.  It's not possible now to create a snapshot
765         by mkdir under .zfs/snapshot/.  That should be the only user visible
766         change.
767
768 20170216:
769         EISA bus support has been removed. The WITH_EISA option is no longer
770         valid.
771
772 20170215:
773         MCA bus support has been removed.
774
775 20170127:
776         The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed
777         WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC.
778
779 20170112:
780         The EM_MULTIQUEUE kernel configuration option is deprecated now that
781         the em(4) driver conforms to iflib specifications.
782
783 20170109:
784         The igb(4), em(4) and lem(4) ethernet drivers are now implemented via
785         IFLIB.  If you have a custom kernel configuration that excludes em(4)
786         but you use igb(4), you need to re-add em(4) to your custom configuration.
787
788 20161217:
789         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1.
790         Please see the 20141231 entry below for information about prerequisites
791         and upgrading, if you are not already using clang 3.5.0 or higher.
792
793 20161124:
794         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0.
795         Please see the 20141231 entry below for information about prerequisites
796         and upgrading, if you are not already using clang 3.5.0 or higher.
797
798 20161119:
799         The layout of the pmap structure has changed for powerpc to put the pmap
800         statistics at the front for all CPU variations.  libkvm(3) and all tools
801         that link against it need to be recompiled.
802
803 20161030:
804         isl(4) and cyapa(4) drivers now require a new driver,
805         chromebook_platform(4), to work properly on Chromebook-class hardware.
806         On other types of hardware the drivers may need to be configured using
807         device hints.  Please see the corresponding manual pages for details.
808
809 20161017:
810         The urtwn(4) driver was merged into rtwn(4) and now consists of
811         rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific
812         parts.
813         Also, firmware for RTL8188CE was renamed due to possible name
814         conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B))
815
816 20161015:
817         GNU rcs has been removed from base.  It is available as packages:
818         - rcs: Latest GPLv3 GNU rcs version.
819         - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was
820         removed from base.
821
822 20161008:
823         Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control
824         modules now requires that the kernel configuration contain the
825         TCP_HHOOK option. (This option is included in the GENERIC kernel.)
826
827 20161003:
828         The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired.
829         ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy.
830
831 20160924:
832         Relocatable object files with the extension of .So have been renamed
833         to use an extension of .pico instead.  The purpose of this change is
834         to avoid a name clash with shared libraries on case-insensitive file
835         systems.  On those file systems, foo.So is the same file as foo.so.
836
837 20160918:
838         GNU rcs has been turned off by default.  It can (temporarily) be built
839         again by adding WITH_RCS knob in src.conf.
840         Otherwise, GNU rcs is available from packages:
841         - rcs: Latest GPLv3 GNU rcs version.
842         - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base.
843
844 20160918:
845         The backup_uses_rcs functionality has been removed from rc.subr.
846
847 20160908:
848         The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into
849         two separate components, QUEUE_MACRO_DEBUG_TRACE and
850         QUEUE_MACRO_DEBUG_TRASH.  Define both for the original
851         QUEUE_MACRO_DEBUG behavior.
852
853 20160824:
854         r304787 changed some ioctl interfaces between the iSCSI userspace
855         programs and the kernel.  ctladm, ctld, iscsictl, and iscsid must be
856         rebuilt to work with new kernels.  __FreeBSD_version has been bumped
857         to 1200005.
858
859 20160818:
860         The UDP receive code has been updated to only treat incoming UDP
861         packets that were addressed to an L2 broadcast address as L3
862         broadcast packets.  It is not expected that this will affect any
863         standards-conforming UDP application.  The new behaviour can be
864         disabled by setting the sysctl net.inet.udp.require_l2_bcast to
865         0.
866
867 20160818:
868         Remove the openbsd_poll system call.
869         __FreeBSD_version has been bumped because of this.
870
871 20160708:
872         The stable/11 branch has been created from head@r302406.
873
874 20160622:
875         The libc stub for the pipe(2) system call has been replaced with
876         a wrapper that calls the pipe2(2) system call and the pipe(2)
877         system call is now only implemented by the kernels that include
878         "options COMPAT_FREEBSD10" in their config file (this is the
879         default).  Users should ensure that this option is enabled in
880         their kernel or upgrade userspace to r302092 before upgrading their
881         kernel.
882
883 20160527:
884         CAM will now strip leading spaces from SCSI disks' serial numbers.
885         This will affect users who create UFS filesystems on SCSI disks using
886         those disk's diskid device nodes.  For example, if /etc/fstab
887         previously contained a line like
888         "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should
889         change it to "/dev/diskid/DISK-ABCDEFG0123456".  Users of geom
890         transforms like gmirror may also be affected.  ZFS users should
891         generally be fine.
892
893 20160523:
894         The bitstring(3) API has been updated with new functionality and
895         improved performance.  But it is binary-incompatible with the old API.
896         Objects built with the new headers may not be linked against objects
897         built with the old headers.
898
899 20160520:
900         The brk and sbrk functions have been removed from libc on arm64.
901         Binutils from ports has been updated to not link to these
902         functions and should be updated to the latest version before
903         installing a new libc.
904
905 20160517:
906         The armv6 port now defaults to hard float ABI. Limited support
907         for running both hardfloat and soft float on the same system
908         is available using the libraries installed with -DWITH_LIBSOFT.
909         This has only been tested as an upgrade path for installworld
910         and packages may fail or need manual intervention to run. New
911         packages will be needed.
912
913         To update an existing self-hosted armv6hf system, you must add
914         TARGET_ARCH=armv6 on the make command line for both the build
915         and the install steps.
916
917 20160510:
918         Kernel modules compiled outside of a kernel build now default to
919         installing to /boot/modules instead of /boot/kernel.  Many kernel
920         modules built this way (such as those in ports) already overrode
921         KMODDIR explicitly to install into /boot/modules.  However,
922         manually building and installing a module from /sys/modules will
923         now install to /boot/modules instead of /boot/kernel.
924
925 20160414:
926         The CAM I/O scheduler has been committed to the kernel. There should be
927         no user visible impact. This does enable NCQ Trim on ada SSDs. While the
928         list of known rogues that claim support for this but actually corrupt
929         data is believed to be complete, be on the lookout for data
930         corruption. The known rogue list is believed to be complete:
931
932                 o Crucial MX100, M550 drives with MU01 firmware.
933                 o Micron M510 and M550 drives with MU01 firmware.
934                 o Micron M500 prior to MU07 firmware
935                 o Samsung 830, 840, and 850 all firmwares
936                 o FCCT M500 all firmwares
937
938         Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware
939         with working NCQ TRIM. For Micron branded drives, see your sales rep for
940         updated firmware. Black listed drives will work correctly because these
941         drives work correctly so long as no NCQ TRIMs are sent to them. Given
942         this list is the same as found in Linux, it's believed there are no
943         other rogues in the market place. All other models from the above
944         vendors work.
945
946         To be safe, if you are at all concerned, you can quirk each of your
947         drives to prevent NCQ from being sent by setting:
948                 kern.cam.ada.X.quirks="0x2"
949         in loader.conf. If the drive requires the 4k sector quirk, set the
950         quirks entry to 0x3.
951
952 20160330:
953         The FAST_DEPEND build option has been removed and its functionality is
954         now the one true way.  The old mkdep(1) style of 'make depend' has
955         been removed.  See 20160311 for further details.
956
957 20160317:
958         Resource range types have grown from unsigned long to uintmax_t.  All
959         drivers, and anything using libdevinfo, need to be recompiled.
960
961 20160311:
962         WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree
963         builds.  It no longer runs mkdep(1) during 'make depend', and the
964         'make depend' stage can safely be skipped now as it is auto ran
965         when building 'make all' and will generate all SRCS and DPSRCS before
966         building anything else.  Dependencies are gathered at compile time with
967         -MF flags kept in separate .depend files per object file.  Users should
968         run 'make cleandepend' once if using -DNO_CLEAN to clean out older
969         stale .depend files.
970
971 20160306:
972         On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into
973         kernel modules.  Therefore, if you load any kernel modules at boot time,
974         please install the boot loaders after you install the kernel, but before
975         rebooting, e.g.:
976
977         make buildworld
978         make buildkernel KERNCONF=YOUR_KERNEL_HERE
979         make installkernel KERNCONF=YOUR_KERNEL_HERE
980         make -C sys/boot install
981         <reboot in single user>
982
983         Then follow the usual steps, described in the General Notes section,
984         below.
985
986 20160305:
987         Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0.  Please
988         see the 20141231 entry below for information about prerequisites and
989         upgrading, if you are not already using clang 3.5.0 or higher.
990
991 20160301:
992         The AIO subsystem is now a standard part of the kernel.  The
993         VFS_AIO kernel option and aio.ko kernel module have been removed.
994         Due to stability concerns, asynchronous I/O requests are only
995         permitted on sockets and raw disks by default.  To enable
996         asynchronous I/O requests on all file types, set the
997         vfs.aio.enable_unsafe sysctl to a non-zero value.
998
999 20160226:
1000         The ELF object manipulation tool objcopy is now provided by the
1001         ELF Tool Chain project rather than by GNU binutils. It should be a
1002         drop-in replacement, with the addition of arm64 support. The
1003         (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set
1004         to obtain the GNU version if necessary.
1005
1006 20160129:
1007         Building ZFS pools on top of zvols is prohibited by default.  That
1008         feature has never worked safely; it's always been prone to deadlocks.
1009         Using a zvol as the backing store for a VM guest's virtual disk will
1010         still work, even if the guest is using ZFS.  Legacy behavior can be
1011         restored by setting vfs.zfs.vol.recursive=1.
1012
1013 20160119:
1014         The NONE and HPN patches has been removed from OpenSSH.  They are
1015         still available in the security/openssh-portable port.
1016
1017 20160113:
1018         With the addition of ypldap(8), a new _ypldap user is now required
1019         during installworld. "mergemaster -p" can be used to add the user
1020         prior to installworld, as documented in the handbook.
1021
1022 20151216:
1023         The tftp loader (pxeboot) now uses the option root-path directive. As a
1024         consequence it no longer looks for a pxeboot.4th file on the tftp
1025         server. Instead it uses the regular /boot infrastructure as with the
1026         other loaders.
1027
1028 20151211:
1029         The code to start recording plug and play data into the modules has
1030         been committed. While the old tools will properly build a new kernel,
1031         a number of warnings about "unknown metadata record 4" will be produced
1032         for an older kldxref. To avoid such warnings, make sure to rebuild
1033         the kernel toolchain (or world). Make sure that you have r292078 or
1034         later when trying to build 292077 or later before rebuilding.
1035
1036 20151207:
1037         Debug data files are now built by default with 'make buildworld' and
1038         installed with 'make installworld'. This facilitates debugging but
1039         requires more disk space both during the build and for the installed
1040         world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes
1041         in src.conf(5).
1042
1043 20151130:
1044         r291527 changed the internal interface between the nfsd.ko and
1045         nfscommon.ko modules. As such, they must both be upgraded to-gether.
1046         __FreeBSD_version has been bumped because of this.
1047
1048 20151108:
1049         Add support for unicode collation strings leads to a change of
1050         order of files listed by ls(1) for example. To get back to the old
1051         behaviour, set LC_COLLATE environment variable to "C".
1052
1053         Databases administrators will need to reindex their databases given
1054         collation results will be different.
1055
1056         Due to a bug in install(1) it is recommended to remove the ancient
1057         locales before running make installworld.
1058
1059         rm -rf /usr/share/locale/*
1060
1061 20151030:
1062         The OpenSSL has been upgraded to 1.0.2d.  Any binaries requiring
1063         libcrypto.so.7 or libssl.so.7 must be recompiled.
1064
1065 20151020:
1066         Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0.
1067         Kernel modules isp_2400_multi and isp_2500_multi were removed and
1068         should be replaced with isp_2400 and isp_2500 modules respectively.
1069
1070 20151017:
1071         The build previously allowed using 'make -n' to not recurse into
1072         sub-directories while showing what commands would be executed, and
1073         'make -n -n' to recursively show commands.  Now 'make -n' will recurse
1074         and 'make -N' will not.
1075
1076 20151012:
1077         If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster
1078         and etcupdate will now use this file. A custom sendmail.cf is now
1079         updated via this mechanism rather than via installworld.  If you had
1080         excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may
1081         want to remove the exclusion or change it to "always install".
1082         /etc/mail/sendmail.cf is now managed the same way regardless of
1083         whether SENDMAIL_MC/SENDMAIL_CF is used.  If you are not using
1084         SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior.
1085
1086 20151011:
1087         Compatibility shims for legacy ATA device names have been removed.
1088         It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases
1089         and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.*
1090         environment variables, /dev/ad* and /dev/ar* symbolic links.
1091
1092 20151006:
1093         Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0.
1094         Please see the 20141231 entry below for information about prerequisites
1095         and upgrading, if you are not already using clang 3.5.0 or higher.
1096
1097 20150924:
1098         Kernel debug files have been moved to /usr/lib/debug/boot/kernel/,
1099         and renamed from .symbols to .debug. This reduces the size requirements
1100         on the boot partition or file system and provides consistency with
1101         userland debug files.
1102
1103         When using the supported kernel installation method the
1104         /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old)
1105         as is done with /boot/kernel.
1106
1107         Developers wishing to maintain the historical behavior of installing
1108         debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5).
1109
1110 20150827:
1111         The wireless drivers had undergone changes that remove the 'parent
1112         interface' from the ifconfig -l output. The rc.d network scripts
1113         used to check presence of a parent interface in the list, so old
1114         scripts would fail to start wireless networking. Thus, etcupdate(3)
1115         or mergemaster(8) run is required after kernel update, to update your
1116         rc.d scripts in /etc.
1117
1118 20150827:
1119         pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl'
1120         These configurations are now automatically interpreted as
1121         'scrub fragment reassemble'.
1122
1123 20150817:
1124         Kernel-loadable modules for the random(4) device are back. To use
1125         them, the kernel must have
1126
1127         device  random
1128         options RANDOM_LOADABLE
1129
1130         kldload(8) can then be used to load random_fortuna.ko
1131         or random_yarrow.ko. Please note that due to the indirect
1132         function calls that the loadable modules need to provide,
1133         the build-in variants will be slightly more efficient.
1134
1135         The random(4) kernel option RANDOM_DUMMY has been retired due to
1136         unpopularity. It was not all that useful anyway.
1137
1138 20150813:
1139         The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired.
1140         Control over building the ELF Tool Chain tools is now provided by
1141         the WITHOUT_TOOLCHAIN knob.
1142
1143 20150810:
1144         The polarity of Pulse Per Second (PPS) capture events with the
1145         uart(4) driver has been corrected.  Prior to this change the PPS
1146         "assert" event corresponded to the trailing edge of a positive PPS
1147         pulse and the "clear" event was the leading edge of the next pulse.
1148
1149         As the width of a PPS pulse in a typical GPS receiver is on the
1150         order of 1 millisecond, most users will not notice any significant
1151         difference with this change.
1152
1153         Anyone who has compensated for the historical polarity reversal by
1154         configuring a negative offset equal to the pulse width will need to
1155         remove that workaround.
1156
1157 20150809:
1158         The default group assigned to /dev/dri entries has been changed
1159         from 'wheel' to 'video' with the id of '44'. If you want to have
1160         access to the dri devices please add yourself to the video group
1161         with:
1162
1163         # pw groupmod video -m $USER
1164
1165 20150806:
1166         The menu.rc and loader.rc files will now be replaced during
1167         upgrades. Please migrate local changes to menu.rc.local and
1168         loader.rc.local instead.
1169
1170 20150805:
1171         GNU Binutils versions of addr2line, c++filt, nm, readelf, size,
1172         strings and strip have been removed. The src.conf(5) knob
1173         WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools.
1174
1175 20150728:
1176         As ZFS requires more kernel stack pages than is the default on some
1177         architectures e.g. i386, it now warns if KSTACK_PAGES is less than
1178         ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing).
1179
1180         Please consider using 'options KSTACK_PAGES=X' where X is greater
1181         than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations.
1182
1183 20150706:
1184         sendmail has been updated to 8.15.2.  Starting with FreeBSD 11.0
1185         and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by
1186         default, i.e., they will not contain "::".  For example, instead
1187         of ::1, it will be 0:0:0:0:0:0:0:1.  This permits a zero subnet
1188         to have a more specific match, such as different map entries for
1189         IPv6:0:0 vs IPv6:0.  This change requires that configuration
1190         data (including maps, files, classes, custom ruleset, etc.) must
1191         use the same format, so make certain such configuration data is
1192         upgrading.  As a very simple check search for patterns like
1193         'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'.  To return to the old
1194         behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or
1195         the cf option UseCompressedIPv6Addresses.
1196
1197 20150630:
1198         The default kernel entropy-processing algorithm is now
1199         Fortuna, replacing Yarrow.
1200
1201         Assuming you have 'device random' in your kernel config
1202         file, the configurations allow a kernel option to override
1203         this default. You may choose *ONE* of:
1204
1205         options RANDOM_YARROW   # Legacy /dev/random algorithm.
1206         options RANDOM_DUMMY    # Blocking-only driver.
1207
1208         If you have neither, you get Fortuna.  For most people,
1209         read no further, Fortuna will give a /dev/random that works
1210         like it always used to, and the difference will be irrelevant.
1211
1212         If you remove 'device random', you get *NO* kernel-processed
1213         entropy at all. This may be acceptable to folks building
1214         embedded systems, but has complications. Carry on reading,
1215         and it is assumed you know what you need.
1216
1217         *PLEASE* read random(4) and random(9) if you are in the
1218         habit of tweaking kernel configs, and/or if you are a member
1219         of the embedded community, wanting specific and not-usual
1220         behaviour from your security subsystems.
1221
1222         NOTE!! If you use RANDOM_DUMMY and/or have no 'device
1223         random', you will NOT have a functioning /dev/random, and
1224         many cryptographic features will not work, including SSH.
1225         You may also find strange behaviour from the random(3) set
1226         of library functions, in particular sranddev(3), srandomdev(3)
1227         and arc4random(3). The reason for this is that the KERN_ARND
1228         sysctl only returns entropy if it thinks it has some to
1229         share, and with RANDOM_DUMMY or no 'device random' this
1230         will never happen.
1231
1232 20150623:
1233         An additional fix for the issue described in the 20150614 sendmail
1234         entry below has been committed in revision 284717.
1235
1236 20150616:
1237         FreeBSD's old make (fmake) has been removed from the system. It is
1238         available as the devel/fmake port or via pkg install fmake.
1239
1240 20150615:
1241         The fix for the issue described in the 20150614 sendmail entry
1242         below has been committed in revision 284436.  The work
1243         around described in that entry is no longer needed unless the
1244         default setting is overridden by a confDH_PARAMETERS configuration
1245         setting of '5' or pointing to a 512 bit DH parameter file.
1246
1247 20150614:
1248         ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from
1249         atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf
1250         and devel/kyua to version 0.20+ and adjust any calling code to work
1251         with Kyuafile and kyua.
1252
1253 20150614:
1254         The import of openssl to address the FreeBSD-SA-15:10.openssl
1255         security advisory includes a change which rejects handshakes
1256         with DH parameters below 768 bits.  sendmail releases prior
1257         to 8.15.2 (not yet released), defaulted to a 512 bit
1258         DH parameter setting for client connections.  To work around
1259         this interoperability, sendmail can be configured to use a
1260         2048 bit DH parameter by:
1261
1262         1. Edit /etc/mail/`hostname`.mc
1263         2. If a setting for confDH_PARAMETERS does not exist or
1264            exists and is set to a string beginning with '5',
1265            replace it with '2'.
1266         3. If a setting for confDH_PARAMETERS exists and is set to
1267            a file path, create a new file with:
1268                 openssl dhparam -out /path/to/file 2048
1269         4. Rebuild the .cf file:
1270                 cd /etc/mail/; make; make install
1271         5. Restart sendmail:
1272                 cd /etc/mail/; make restart
1273
1274         A sendmail patch is coming, at which time this file will be
1275         updated.
1276
1277 20150604:
1278         Generation of legacy formatted entries have been disabled by default
1279         in pwd_mkdb(8), as all base system consumers of the legacy formatted
1280         entries were converted to use the new format by default when the new,
1281         machine independent format have been added and supported since FreeBSD
1282         5.x.
1283
1284         Please see the pwd_mkdb(8) manual page for further details.
1285
1286 20150525:
1287         Clang and llvm have been upgraded to 3.6.1 release.  Please see the
1288         20141231 entry below for information about prerequisites and upgrading,
1289         if you are not already using 3.5.0 or higher.
1290
1291 20150521:
1292         TI platform code switched to using vendor DTS files and this update
1293         may break existing systems running on Beaglebone, Beaglebone Black,
1294         and Pandaboard:
1295
1296         - dtb files should be regenerated/reinstalled. Filenames are the
1297           same but content is different now
1298         - GPIO addressing was changed, now each GPIO bank (32 pins per bank)
1299           has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old
1300           addressing scheme is now pin 25 on /dev/gpioc3.
1301         - Pandaboard: /etc/ttys should be updated, serial console device is
1302           now /dev/ttyu2, not /dev/ttyu0
1303
1304 20150501:
1305         soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim.
1306         If you need the GNU extension from groff soelim(1), install groff
1307         from package: pkg install groff, or via ports: textproc/groff.
1308
1309 20150423:
1310         chmod, chflags, chown and chgrp now affect symlinks in -R mode as
1311         defined in symlink(7); previously symlinks were silently ignored.
1312
1313 20150415:
1314         The const qualifier has been removed from iconv(3) to comply with
1315         POSIX.  The ports tree is aware of this from r384038 onwards.
1316
1317 20150416:
1318         Libraries specified by LIBADD in Makefiles must have a corresponding
1319         DPADD_<lib> variable to ensure correct dependencies.  This is now
1320         enforced in src.libnames.mk.
1321
1322 20150324:
1323         From legacy ata(4) driver was removed support for SATA controllers
1324         supported by more functional drivers ahci(4), siis(4) and mvs(4).
1325         Kernel modules ataahci and ataadaptec were removed completely,
1326         replaced by ahci and mvs modules respectively.
1327
1328 20150315:
1329         Clang, llvm and lldb have been upgraded to 3.6.0 release.  Please see
1330         the 20141231 entry below for information about prerequisites and
1331         upgrading, if you are not already using 3.5.0 or higher.
1332
1333 20150307:
1334         The 32-bit PowerPC kernel has been changed to a position-independent
1335         executable. This can only be booted with a version of loader(8)
1336         newer than January 31, 2015, so make sure to update both world and
1337         kernel before rebooting.
1338
1339 20150217:
1340         If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014),
1341         but before r278950, the RNG was not seeded properly.  Immediately
1342         upgrade the kernel to r278950 or later and regenerate any keys (e.g.
1343         ssh keys or openssl keys) that were generated w/ a kernel from that
1344         range.  This does not affect programs that directly used /dev/random
1345         or /dev/urandom.  All userland uses of arc4random(3) are affected.
1346
1347 20150210:
1348         The autofs(4) ABI was changed in order to restore binary compatibility
1349         with 10.1-RELEASE.  The automountd(8) daemon needs to be rebuilt to work
1350         with the new kernel.
1351
1352 20150131:
1353         The powerpc64 kernel has been changed to a position-independent
1354         executable. This can only be booted with a new version of loader(8),
1355         so make sure to update both world and kernel before rebooting.
1356
1357 20150118:
1358         Clang and llvm have been upgraded to 3.5.1 release.  This is a bugfix
1359         only release, no new features have been added.  Please see the 20141231
1360         entry below for information about prerequisites and upgrading, if you
1361         are not already using 3.5.0.
1362
1363 20150107:
1364         ELF tools addr2line, elfcopy (strip), nm, size, and strings are now
1365         taken from the ELF Tool Chain project rather than GNU binutils. They
1366         should be drop-in replacements, with the addition of arm64 support.
1367         The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the
1368         binutils tools, if necessary. See 20150805 for updated information.
1369
1370 20150105:
1371         The default Unbound configuration now enables remote control
1372         using a local socket.  Users who have already enabled the
1373         local_unbound service should regenerate their configuration
1374         by running "service local_unbound setup" as root.
1375
1376 20150102:
1377         The GNU texinfo and GNU info pages have been removed.
1378         To be able to view GNU info pages please install texinfo from ports.
1379
1380 20141231:
1381         Clang, llvm and lldb have been upgraded to 3.5.0 release.
1382
1383         As of this release, a prerequisite for building clang, llvm and lldb is
1384         a C++11 capable compiler and C++11 standard library.  This means that to
1385         be able to successfully build the cross-tools stage of buildworld, with
1386         clang as the bootstrap compiler, your system compiler or cross compiler
1387         should either be clang 3.3 or later, or gcc 4.8 or later, and your
1388         system C++ library should be libc++, or libdstdc++ from gcc 4.8 or
1389         later.
1390
1391         On any standard FreeBSD 10.x or 11.x installation, where clang and
1392         libc++ are on by default (that is, on x86 or arm), this should work out
1393         of the box.
1394
1395         On 9.x installations where clang is enabled by default, e.g. on x86 and
1396         powerpc, libc++ will not be enabled by default, so libc++ should be
1397         built (with clang) and installed first.  If both clang and libc++ are
1398         missing, build clang first, then use it to build libc++.
1399
1400         On 8.x and earlier installations, upgrade to 9.x first, and then follow
1401         the instructions for 9.x above.
1402
1403         Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by
1404         default, and do not build clang.
1405
1406         Many embedded systems are resource constrained, and will not be able to
1407         build clang in a reasonable time, or in some cases at all.  In those
1408         cases, cross building bootable systems on amd64 is a workaround.
1409
1410         This new version of clang introduces a number of new warnings, of which
1411         the following are most likely to appear:
1412
1413         -Wabsolute-value
1414
1415         This warns in two cases, for both C and C++:
1416         * When the code is trying to take the absolute value of an unsigned
1417           quantity, which is effectively a no-op, and almost never what was
1418           intended.  The code should be fixed, if at all possible.  If you are
1419           sure that the unsigned quantity can be safely cast to signed, without
1420           loss of information or undefined behavior, you can add an explicit
1421           cast, or disable the warning.
1422
1423         * When the code is trying to take an absolute value, but the called
1424           abs() variant is for the wrong type, which can lead to truncation.
1425           If you want to disable the warning instead of fixing the code, please
1426           make sure that truncation will not occur, or it might lead to unwanted
1427           side-effects.
1428
1429         -Wtautological-undefined-compare and
1430         -Wundefined-bool-conversion
1431
1432         These warn when C++ code is trying to compare 'this' against NULL, while
1433         'this' should never be NULL in well-defined C++ code.  However, there is
1434         some legacy (pre C++11) code out there, which actively abuses this
1435         feature, which was less strictly defined in previous C++ versions.
1436
1437         Squid and openjdk do this, for example.  The warning can be turned off
1438         for C++98 and earlier, but compiling the code in C++11 mode might result
1439         in unexpected behavior; for example, the parts of the program that are
1440         unreachable could be optimized away.
1441
1442 20141222:
1443         The old NFS client and server (kernel options NFSCLIENT, NFSSERVER)
1444         kernel sources have been removed. The .h files remain, since some
1445         utilities include them. This will need to be fixed later.
1446         If "mount -t oldnfs ..." is attempted, it will fail.
1447         If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used,
1448         the utilities will report errors.
1449
1450 20141121:
1451         The handling of LOCAL_LIB_DIRS has been altered to skip addition of
1452         directories to top level SUBDIR variable when their parent
1453         directory is included in LOCAL_DIRS.  Users with build systems with
1454         such hierarchies and without SUBDIR entries in the parent
1455         directory Makefiles should add them or add the directories to
1456         LOCAL_DIRS.
1457
1458 20141109:
1459         faith(4) and faithd(8) have been removed from the base system. Faith
1460         has been obsolete for a very long time.
1461
1462 20141104:
1463         vt(4), the new console driver, is enabled by default. It brings
1464         support for Unicode and double-width characters, as well as
1465         support for UEFI and integration with the KMS kernel video
1466         drivers.
1467
1468         You may need to update your console settings in /etc/rc.conf,
1469         most probably the keymap. During boot, /etc/rc.d/syscons will
1470         indicate what you need to do.
1471
1472         vt(4) still has issues and lacks some features compared to
1473         syscons(4). See the wiki for up-to-date information:
1474           https://wiki.freebsd.org/Newcons
1475
1476         If you want to keep using syscons(4), you can do so by adding
1477         the following line to /boot/loader.conf:
1478           kern.vty=sc
1479
1480 20141102:
1481         pjdfstest has been integrated into kyua as an opt-in test suite.
1482         Please see share/doc/pjdfstest/README for more details on how to
1483         execute it.
1484
1485 20141009:
1486         gperf has been removed from the base system for architectures
1487         that use clang. Ports that require gperf will obtain it from the
1488         devel/gperf port.
1489
1490 20140923:
1491         pjdfstest has been moved from tools/regression/pjdfstest to
1492         contrib/pjdfstest .
1493
1494 20140922:
1495         At svn r271982, The default linux compat kernel ABI has been adjusted
1496         to 2.6.18 in support of the linux-c6 compat ports infrastructure
1497         update.  If you wish to continue using the linux-f10 compat ports,
1498         add compat.linux.osrelease=2.6.16 to your local sysctl.conf.  Users are
1499         encouraged to update their linux-compat packages to linux-c6 during
1500         their next update cycle.
1501
1502 20140729:
1503         The ofwfb driver, used to provide a graphics console on PowerPC when
1504         using vt(4), no longer allows mmap() of all physical memory. This
1505         will prevent Xorg on PowerPC with some ATI graphics cards from
1506         initializing properly unless x11-servers/xorg-server is updated to
1507         1.12.4_8 or newer.
1508
1509 20140723:
1510         The xdev targets have been converted to using TARGET and
1511         TARGET_ARCH instead of XDEV and XDEV_ARCH.
1512
1513 20140719:
1514         The default unbound configuration has been modified to address
1515         issues with reverse lookups on networks that use private
1516         address ranges.  If you use the local_unbound service, run
1517         "service local_unbound setup" as root to regenerate your
1518         configuration, then "service local_unbound reload" to load the
1519         new configuration.
1520
1521 20140709:
1522         The GNU texinfo and GNU info pages are not built and installed
1523         anymore, WITH_INFO knob has been added to allow to built and install
1524         them again.
1525         UPDATE: see 20150102 entry on texinfo's removal
1526
1527 20140708:
1528         The GNU readline library is now an INTERNALLIB - that is, it is
1529         statically linked into consumers (GDB and variants) in the base
1530         system, and the shared library is no longer installed.  The
1531         devel/readline port is available for third party software that
1532         requires readline.
1533
1534 20140702:
1535         The Itanium architecture (ia64) has been removed from the list of
1536         known architectures. This is the first step in the removal of the
1537         architecture.
1538
1539 20140701:
1540         Commit r268115 has added NFSv4.1 server support, merged from
1541         projects/nfsv4.1-server.  Since this includes changes to the
1542         internal interfaces between the NFS related modules, a full
1543         build of the kernel and modules will be necessary.
1544         __FreeBSD_version has been bumped.
1545
1546 20140629:
1547         The WITHOUT_VT_SUPPORT kernel config knob has been renamed
1548         WITHOUT_VT.  (The other _SUPPORT knobs have a consistent meaning
1549         which differs from the behaviour controlled by this knob.)
1550
1551 20140619:
1552         Maximal length of the serial number in CTL was increased from 16 to
1553         64 chars, that breaks ABI.  All CTL-related tools, such as ctladm
1554         and ctld, need to be rebuilt to work with a new kernel.
1555
1556 20140606:
1557         The libatf-c and libatf-c++ major versions were downgraded to 0 and
1558         1 respectively to match the upstream numbers.  They were out of
1559         sync because, when they were originally added to FreeBSD, the
1560         upstream versions were not respected.  These libraries are private
1561         and not yet built by default, so renumbering them should be a
1562         non-issue.  However, unclean source trees will yield broken test
1563         programs once the operator executes "make delete-old-libs" after a
1564         "make installworld".
1565
1566         Additionally, the atf-sh binary was made private by moving it into
1567         /usr/libexec/.  Already-built shell test programs will keep the
1568         path to the old binary so they will break after "make delete-old"
1569         is run.
1570
1571         If you are using WITH_TESTS=yes (not the default), wipe the object
1572         tree and rebuild from scratch to prevent spurious test failures.
1573         This is only needed once: the misnumbered libraries and misplaced
1574         binaries have been added to OptionalObsoleteFiles.inc so they will
1575         be removed during a clean upgrade.
1576
1577 20140512:
1578         Clang and llvm have been upgraded to 3.4.1 release.
1579
1580 20140508:
1581         We bogusly installed src.opts.mk in /usr/share/mk. This file should
1582         be removed to avoid issues in the future (and has been added to
1583         ObsoleteFiles.inc).
1584
1585 20140505:
1586         /etc/src.conf now affects only builds of the FreeBSD src tree. In the
1587         past, it affected all builds that used the bsd.*.mk files. The old
1588         behavior was a bug, but people may have relied upon it. To get this
1589         behavior back, you can .include /etc/src.conf from /etc/make.conf
1590         (which is still global and isn't changed). This also changes the
1591         behavior of incremental builds inside the tree of individual
1592         directories. Set MAKESYSPATH to ".../share/mk" to do that.
1593         Although this has survived make universe and some upgrade scenarios,
1594         other upgrade scenarios may have broken. At least one form of
1595         temporary breakage was fixed with MAKESYSPATH settings for buildworld
1596         as well... In cases where MAKESYSPATH isn't working with this
1597         setting, you'll need to set it to the full path to your tree.
1598
1599         One side effect of all this cleaning up is that bsd.compiler.mk
1600         is no longer implicitly included by bsd.own.mk. If you wish to
1601         use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk
1602         as well.
1603
1604 20140430:
1605         The lindev device has been removed since /dev/full has been made a
1606         standard device.  __FreeBSD_version has been bumped.
1607
1608 20140424:
1609         The knob WITHOUT_VI was added to the base system, which controls
1610         building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1)
1611         in order to reorder files share/termcap and didn't build ex(1) as a
1612         build tool, so building/installing with WITH_VI is highly advised for
1613         build hosts for older releases.
1614
1615         This issue has been fixed in stable/9 and stable/10 in r277022 and
1616         r276991, respectively.
1617
1618 20140418:
1619         The YES_HESIOD knob has been removed. It has been obsolete for
1620         a decade. Please move to using WITH_HESIOD instead or your builds
1621         will silently lack HESIOD.
1622
1623 20140405:
1624         The uart(4) driver has been changed with respect to its handling
1625         of the low-level console. Previously the uart(4) driver prevented
1626         any process from changing the baudrate or the CLOCAL and HUPCL
1627         control flags. By removing the restrictions, operators can make
1628         changes to the serial console port without having to reboot.
1629         However, when getty(8) is started on the serial device that is
1630         associated with the low-level console, a misconfigured terminal
1631         line in /etc/ttys will now have a real impact.
1632         Before upgrading the kernel, make sure that /etc/ttys has the
1633         serial console device configured as 3wire without baudrate to
1634         preserve the previous behaviour. E.g:
1635             ttyu0  "/usr/libexec/getty 3wire"  vt100  on  secure
1636
1637 20140306:
1638         Support for libwrap (TCP wrappers) in rpcbind was disabled by default
1639         to improve performance.  To re-enable it, if needed, run rpcbind
1640         with command line option -W.
1641
1642 20140226:
1643         Switched back to the GPL dtc compiler due to updates in the upstream
1644         dts files not being supported by the BSDL dtc compiler. You will need
1645         to rebuild your kernel toolchain to pick up the new compiler. Core dumps
1646         may result while building dtb files during a kernel build if you fail
1647         to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler.
1648
1649 20140216:
1650         Clang and llvm have been upgraded to 3.4 release.
1651
1652 20140216:
1653         The nve(4) driver has been removed.  Please use the nfe(4) driver
1654         for NVIDIA nForce MCP Ethernet adapters instead.
1655
1656 20140212:
1657         An ABI incompatibility crept into the libc++ 3.4 import in r261283.
1658         This could cause certain C++ applications using shared libraries built
1659         against the previous version of libc++ to crash.  The incompatibility
1660         has now been fixed, but any C++ applications or shared libraries built
1661         between r261283 and r261801 should be recompiled.
1662
1663 20140204:
1664         OpenSSH will now ignore errors caused by kernel lacking of Capsicum
1665         capability mode support.  Please note that enabling the feature in
1666         kernel is still highly recommended.
1667
1668 20140131:
1669         OpenSSH is now built with sandbox support, and will use sandbox as
1670         the default privilege separation method.  This requires Capsicum
1671         capability mode support in kernel.
1672
1673 20140128:
1674         The libelf and libdwarf libraries have been updated to newer
1675         versions from upstream. Shared library version numbers for
1676         these two libraries were bumped. Any ports or binaries
1677         requiring these two libraries should be recompiled.
1678         __FreeBSD_version is bumped to 1100006.
1679
1680 20140110:
1681         If a Makefile in a tests/ directory was auto-generating a Kyuafile
1682         instead of providing an explicit one, this would prevent such
1683         Makefile from providing its own Kyuafile in the future during
1684         NO_CLEAN builds.  This has been fixed in the Makefiles but manual
1685         intervention is needed to clean an objdir if you use NO_CLEAN:
1686           # find /usr/obj -name Kyuafile | xargs rm -f
1687
1688 20131213:
1689         The behavior of gss_pseudo_random() for the krb5 mechanism
1690         has changed, for applications requesting a longer random string
1691         than produced by the underlying enctype's pseudo-random() function.
1692         In particular, the random string produced from a session key of
1693         enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will
1694         be different at the 17th octet and later, after this change.
1695         The counter used in the PRF+ construction is now encoded as a
1696         big-endian integer in accordance with RFC 4402.
1697         __FreeBSD_version is bumped to 1100004.
1698
1699 20131108:
1700         The WITHOUT_ATF build knob has been removed and its functionality
1701         has been subsumed into the more generic WITHOUT_TESTS.  If you were
1702         using the former to disable the build of the ATF libraries, you
1703         should change your settings to use the latter.
1704
1705 20131025:
1706         The default version of mtree is nmtree which is obtained from
1707         NetBSD.  The output is generally the same, but may vary
1708         slightly.  If you found you need identical output adding
1709         "-F freebsd9" to the command line should do the trick.  For the
1710         time being, the old mtree is available as fmtree.
1711
1712 20131014:
1713         libbsdyml has been renamed to libyaml and moved to /usr/lib/private.
1714         This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg
1715         1.1.4_8 and verify bsdyml not linked in, before running "make
1716         delete-old-libs":
1717           # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean
1718           or
1719           # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml
1720
1721 20131010:
1722         The stable/10 branch has been created in subversion from head
1723         revision r256279.
1724
1725 COMMON ITEMS:
1726
1727         General Notes
1728         -------------
1729         Avoid using make -j when upgrading.  While generally safe, there are
1730         sometimes problems using -j to upgrade.  If your upgrade fails with
1731         -j, please try again without -j.  From time to time in the past there
1732         have been problems using -j with buildworld and/or installworld.  This
1733         is especially true when upgrading between "distant" versions (eg one
1734         that cross a major release boundary or several minor releases, or when
1735         several months have passed on the -current branch).
1736
1737         Sometimes, obscure build problems are the result of environment
1738         poisoning.  This can happen because the make utility reads its
1739         environment when searching for values for global variables.  To run
1740         your build attempts in an "environmental clean room", prefix all make
1741         commands with 'env -i '.  See the env(1) manual page for more details.
1742
1743         When upgrading from one major version to another it is generally best to
1744         upgrade to the latest code in the currently installed branch first, then
1745         do an upgrade to the new branch. This is the best-tested upgrade path,
1746         and has the highest probability of being successful.  Please try this
1747         approach if you encounter problems with a major version upgrade.  Since
1748         the stable 4.x branch point, one has generally been able to upgrade from
1749         anywhere in the most recent stable branch to head / current (or even the
1750         last couple of stable branches). See the top of this file when there's
1751         an exception.
1752
1753         When upgrading a live system, having a root shell around before
1754         installing anything can help undo problems. Not having a root shell
1755         around can lead to problems if pam has changed too much from your
1756         starting point to allow continued authentication after the upgrade.
1757
1758         This file should be read as a log of events. When a later event changes
1759         information of a prior event, the prior event should not be deleted.
1760         Instead, a pointer to the entry with the new information should be
1761         placed in the old entry. Readers of this file should also sanity check
1762         older entries before relying on them blindly. Authors of new entries
1763         should write them with this in mind.
1764
1765         ZFS notes
1766         ---------
1767         When upgrading the boot ZFS pool to a new version, always follow
1768         these two steps:
1769
1770         1.) recompile and reinstall the ZFS boot loader and boot block
1771         (this is part of "make buildworld" and "make installworld")
1772
1773         2.) update the ZFS boot block on your boot drive
1774
1775         The following example updates the ZFS boot block on the first
1776         partition (freebsd-boot) of a GPT partitioned drive ada0:
1777         "gpart bootcode -p /boot/gptzfsboot -i 1 ada0"
1778
1779         Non-boot pools do not need these updates.
1780
1781         To build a kernel
1782         -----------------
1783         If you are updating from a prior version of FreeBSD (even one just
1784         a few days old), you should follow this procedure.  It is the most
1785         failsafe as it uses a /usr/obj tree with a fresh mini-buildworld,
1786
1787         make kernel-toolchain
1788         make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE
1789         make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE
1790
1791         To test a kernel once
1792         ---------------------
1793         If you just want to boot a kernel once (because you are not sure
1794         if it works, or if you want to boot a known bad kernel to provide
1795         debugging information) run
1796         make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel
1797         nextboot -k testkernel
1798
1799         To rebuild everything and install it on the current system.
1800         -----------------------------------------------------------
1801         # Note: sometimes if you are running current you gotta do more than
1802         # is listed here if you are upgrading from a really old current.
1803
1804         <make sure you have good level 0 dumps>
1805         make buildworld
1806         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1807         make installkernel KERNCONF=YOUR_KERNEL_HERE
1808                                                         [1]
1809         <reboot in single user>                         [3]
1810         mergemaster -Fp                                 [5]
1811         make installworld
1812         mergemaster -Fi                                 [4]
1813         make delete-old                                 [6]
1814         <reboot>
1815
1816         To cross-install current onto a separate partition
1817         --------------------------------------------------
1818         # In this approach we use a separate partition to hold
1819         # current's root, 'usr', and 'var' directories.   A partition
1820         # holding "/", "/usr" and "/var" should be about 2GB in
1821         # size.
1822
1823         <make sure you have good level 0 dumps>
1824         <boot into -stable>
1825         make buildworld
1826         make buildkernel KERNCONF=YOUR_KERNEL_HERE
1827         <maybe newfs current's root partition>
1828         <mount current's root partition on directory ${CURRENT_ROOT}>
1829         make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC
1830         make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd
1831         make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT}
1832         cp /etc/fstab ${CURRENT_ROOT}/etc/fstab                    # if newfs'd
1833         <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition>
1834         <reboot into current>
1835         <do a "native" rebuild/install as described in the previous section>
1836         <maybe install compatibility libraries from ports/misc/compat*>
1837         <reboot>
1838
1839
1840         To upgrade in-place from stable to current
1841         ----------------------------------------------
1842         <make sure you have good level 0 dumps>
1843         make buildworld                                 [9]
1844         make buildkernel KERNCONF=YOUR_KERNEL_HERE      [8]
1845         make installkernel KERNCONF=YOUR_KERNEL_HERE
1846                                                         [1]
1847         <reboot in single user>                         [3]
1848         mergemaster -Fp                                 [5]
1849         make installworld
1850         mergemaster -Fi                                 [4]
1851         make delete-old                                 [6]
1852         <reboot>
1853
1854         Make sure that you've read the UPDATING file to understand the
1855         tweaks to various things you need.  At this point in the life
1856         cycle of current, things change often and you are on your own
1857         to cope.  The defaults can also change, so please read ALL of
1858         the UPDATING entries.
1859
1860         Also, if you are tracking -current, you must be subscribed to
1861         freebsd-current@freebsd.org.  Make sure that before you update
1862         your sources that you have read and understood all the recent
1863         messages there.  If in doubt, please track -stable which has
1864         much fewer pitfalls.
1865
1866         [1] If you have third party modules, such as vmware, you
1867         should disable them at this point so they don't crash your
1868         system on reboot.
1869
1870         [3] From the bootblocks, boot -s, and then do
1871                 fsck -p
1872                 mount -u /
1873                 mount -a
1874                 cd src
1875                 adjkerntz -i            # if CMOS is wall time
1876         Also, when doing a major release upgrade, it is required that
1877         you boot into single user mode to do the installworld.
1878
1879         [4] Note: This step is non-optional.  Failure to do this step
1880         can result in a significant reduction in the functionality of the
1881         system.  Attempting to do it by hand is not recommended and those
1882         that pursue this avenue should read this file carefully, as well
1883         as the archives of freebsd-current and freebsd-hackers mailing lists
1884         for potential gotchas.  The -U option is also useful to consider.
1885         See mergemaster(8) for more information.
1886
1887         [5] Usually this step is a no-op.  However, from time to time
1888         you may need to do this if you get unknown user in the following
1889         step.  It never hurts to do it all the time.  You may need to
1890         install a new mergemaster (cd src/usr.sbin/mergemaster && make
1891         install) after the buildworld before this step if you last updated
1892         from current before 20130425 or from -stable before 20130430.
1893
1894         [6] This only deletes old files and directories. Old libraries
1895         can be deleted by "make delete-old-libs", but you have to make
1896         sure that no program is using those libraries anymore.
1897
1898         [8] In order to have a kernel that can run the 4.x binaries needed to
1899         do an installworld, you must include the COMPAT_FREEBSD4 option in
1900         your kernel.  Failure to do so may leave you with a system that is
1901         hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is
1902         required to run the 5.x binaries on more recent kernels.  And so on
1903         for COMPAT_FREEBSD6 and COMPAT_FREEBSD7.
1904
1905         Make sure that you merge any new devices from GENERIC since the
1906         last time you updated your kernel config file.
1907
1908         [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the
1909         "?=" instead of the "=" assignment operator, so that buildworld can
1910         override the CPUTYPE if it needs to.
1911
1912         MAKEOBJDIRPREFIX must be defined in an environment variable, and
1913         not on the command line, or in /etc/make.conf.  buildworld will
1914         warn if it is improperly defined.
1915 FORMAT:
1916
1917 This file contains a list, in reverse chronological order, of major
1918 breakages in tracking -current.  It is not guaranteed to be a complete
1919 list of such breakages, and only contains entries since September 23, 2011.
1920 If you need to see UPDATING entries from before that date, you will need
1921 to fetch an UPDATING file from an older FreeBSD release.
1922
1923 Copyright information:
1924
1925 Copyright 1998-2009 M. Warner Losh.  All Rights Reserved.
1926
1927 Redistribution, publication, translation and use, with or without
1928 modification, in full or in part, in any form or format of this
1929 document are permitted without further permission from the author.
1930
1931 THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR
1932 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1933 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
1934 DISCLAIMED.  IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT,
1935 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
1936 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
1937 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
1938 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
1939 STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
1940 IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
1941 POSSIBILITY OF SUCH DAMAGE.
1942
1943 Contact Warner Losh if you have any questions about your use of
1944 this document.
1945
1946 $FreeBSD$