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