1Updating 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/current-stable.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 34 35****************************** SPECIAL WARNING: ****************************** 36 37 Due to a bug in some versions of clang that's very hard to workaround in 38 the upgrade process, to upgrade to -current you must first upgrade 39 either stable/9 after r286035 or stable/10 after r286033 (including 40 10.3-RELEASE) or current after r286007 (including stable/11 and 41 11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so 42 you'll need to take the unusual step of upgrading to the tip of the 43 stable branch before moving to 11 or -current via a source upgrade. 44 stable/11 and 11.0-RELEASE have working newer compiler. This differs 45 from the historical situation where one could upgrade from anywhere on 46 the last couple of stable branches, so be careful. 47 48 If you're running a hybrid system on 9.x or 10.x with an updated clang 49 compiler or are using an supported external toolchain, the build system 50 will allow the upgrade. Otherwise it will print a reminder. 51 52****************************** SPECIAL WARNING: ****************************** 53 5420180212: 55 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 56 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 57 Co-existance for the transition period will come shortly. Booting is a 58 complex environment and test coverage for Lua-enabled loaders has been 59 thin, so it would be prudent to assume it might not work and make 60 provisions for backup boot methods. 61 6220180211: 63 devmatch functionality has been turned on in devd. It will automatically 64 load drivers for unattached devices. This may cause unexpected drivers to 65 be loaded. Please report any problems to current@ and imp@freebsd.org. 66 6720180114: 68 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 69 6.0.0. Please see the 20141231 entry below for information about 70 prerequisites and upgrading, if you are not already using clang 3.5.0 71 or higher. 72 7320180110: 74 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 75 This means it is used to link the kernel and userland libraries and 76 executables, but is not yet installed as /usr/bin/ld by default. 77 78 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 79 WITHOUT_LLD_BOOTSTRAP=yes 80 8120180110: 82 On i386, pmtimer has been removed. Its functionality has been folded 83 into apm. It was a no-op on ACPI in current for a while now (but was still 84 needed on i386 in FreeBSD 11 and earlier). Users may need to remove it 85 from kernel config files. 86 8720180104: 88 The use of RSS hash from the network card aka flowid has been 89 disabled by default for lagg(4) as it's currently incompatible with 90 the lacp and loadbalance protocols. 91 92 This can be re-enabled by setting the following in loader.conf: 93 net.link.lagg.default_use_flowid="1" 94 9520180102: 96 The SW_WATCHDOG option is no longer necessary to enable the 97 hardclock-based software watchdog if no hardware watchdog is 98 configured. As before, SW_WATCHDOG will cause the software 99 watchdog to be enabled even if a hardware watchdog is configured. 100 10120171215: 102 r326887 fixes the issue described in the 20171214 UPDATING entry. 103 r326888 flips the switch back to building GELI support always. 104 10520171214: 106 r362593 broke ZFS + GELI support for reasons unknown. However, 107 it also broke ZFS support generally, so GELI has been turned off 108 by default as the lesser evil in r326857. If you boot off ZFS and/or 109 GELI, it might not be a good time to update. 110 11120171125: 112 PowerPC users must update loader(8) by rebuilding world before 113 installing a new kernel, as the protocol connecting them has 114 changed. Without the update, loader metadata will not be passed 115 successfully to the kernel and users will have to enter their 116 root partition at the kernel mountroot prompt to continue booting. 117 Newer versions of loader can boot old kernels without issue. 118 11920171110: 120 The LOADER_FIREWIRE_SUPPORT build variable as been renamed to 121 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 122 to WITH/OUT_LOADER_GELI. 123 12420171106: 125 The naive and non-compliant support of posix_fallocate(2) in ZFS 126 has been removed as of r325320. The system call now returns EINVAL 127 when used on a ZFS file. Although the new behavior complies with the 128 standard, some consumers are not prepared to cope with it. 129 One known victim is lld prior to r325420. 130 13120171102: 132 Building in a FreeBSD src checkout will automatically create object 133 directories now rather than store files in the current directory if 134 'make obj' was not ran. Calling 'make obj' is no longer necessary. 135 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 136 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 137 environment. 138 13920171101: 140 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 141 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 142 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 143 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 144 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 145 The UNIFIED_OBJDIR option is a transitional feature that will be 146 removed for 12.0 release; please migrate to the new format for any 147 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 148 than hardcoding paths. 149 15020171028: 151 The native-xtools target no longer installs the files by default to the 152 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 153 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 154 15520171021: 156 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 157 options are changing from controlling the build if defined / undefined 158 to controlling the build with explicit 'yes' or 'no' values. They will 159 shift to WITH/WITHOUT options to match other options in the system. 160 16120171010: 162 libstand has turned into a private library for sys/boot use only. 163 It is no longer supported as a public interface outside of sys/boot. 164 16520171005: 166 The arm port has split armv6 into armv6 and armv7. armv7 is now 167 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 168 and are running a kernel from before r324363, you will need to add 169 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 170 17120171003: 172 When building multiple kernels using KERNCONF, non-existent KERNCONF 173 files will produce an error and buildkernel will fail. Previously 174 missing KERNCONF files silently failed giving no indication as to 175 why, only to subsequently discover during installkernel that the 176 desired kernel was never built in the first place. 177 17820170912: 179 The default serial number format for CTL LUNs has changed. This will 180 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 181 or iSCSI clients care about their LUNs' serial numbers. Users who 182 require serial number stability should hardcode serial numbers in 183 /etc/ctl.conf . 184 18520170912: 186 For 32-bit arm compiled for hard-float support, soft-floating point 187 binaries now always get their shared libraries from 188 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 189 /usr/libsoft also existed). Only users with a hard-float ld.so, but 190 soft-float everything else should be affected. 191 19220170826: 193 The geli password typed at boot is now hidden. To restore the previous 194 behavior, see geli(8) for configuration options. 195 19620170825: 197 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 198 sysctl values. Minor nit, but requires a rebuild of both world/kernel 199 to complete. 200 20120170814: 202 "make check" behavior (made in ^/head@r295380) has been changed to 203 execute from a limited sandbox, as opposed to executing from 204 ${TESTSDIR}. 205 206 Behavioral changes: 207 - The "beforecheck" and "aftercheck" targets are now specified. 208 - ${CHECKDIR} (added in commit noted above) has been removed. 209 - Legacy behavior can be enabled by setting 210 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 211 212 If the limited sandbox mode is enabled, "make check" will execute 213 "make distribution", then install, execute the tests, and clean up the 214 sandbox if successful. 215 216 The "make distribution" and "make install" targets are typically run as 217 root to set appropriate permissions and ownership at installation time. 218 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 219 environment if executing "make check" with limited sandbox mode using 220 an unprivileged user. 221 22220170808: 223 Since the switch to GPT disk labels, fsck for UFS/FFS has been 224 unable to automatically find alternate superblocks. As of r322297, 225 the information needed to find alternate superblocks has been 226 moved to the end of the area reserved for the boot block. 227 Filesystems created with a newfs of this vintage or later 228 will create the recovery information. If you have a filesystem 229 created prior to this change and wish to have a recovery block 230 created for your filesystem, you can do so by running fsck in 231 foreground mode (i.e., do not use the -p or -y options). As it 232 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 233 to which you should answer yes. 234 23520170728: 236 As of r321665, an NFSv4 server configuration that services 237 Kerberos mounts or clients that do not support the uid/gid in 238 owner/owner_group string capability, must explicitly enable 239 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 240 machine's /etc/rc.conf file. 241 24220170722: 243 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 244 Please see the 20141231 entry below for information about prerequisites 245 and upgrading, if you are not already using clang 3.5.0 or higher. 246 24720170701: 248 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 249 r-commands (rlogin, rsh, etc.) to be built with the base system. 250 25120170625: 252 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 253 a very major ABI incompatible change, so users of FreeBSD/powerpc must 254 be careful when performing source upgrades. It is best to run 255 'make installworld' from an alternate root system, either a live 256 CD/memory stick, or a temporary root partition. Additionally, all ports 257 must be recompiled. powerpc64 is largely unaffected, except in the case 258 of 32-bit compatibility. All 32-bit binaries will be affected. 259 26020170623: 261 Forward compatibility for the "ino64" project have been committed. This 262 will allow most new binaries to run on older kernels in a limited 263 fashion. This prevents many of the common foot-shooting actions in the 264 upgrade as well as the limited ability to roll back the kernel across 265 the ino64 upgrade. Complicated use cases may not work properly, though 266 enough simpler ones work to allow recovery in most situations. 267 26820170620: 269 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 270 if you require the GPL compiler. 271 27220170618: 273 The internal ABI used for communication between the NFS kernel modules 274 was changed by r320085, so __FreeBSD_version was bumped to 275 ensure all the NFS related modules are updated together. 276 27720170617: 278 The ABI of struct event was changed by extending the data 279 member to 64bit and adding ext fields. For upgrade, same 280 precautions as for the entry 20170523 "ino64" must be 281 followed. 282 28320170531: 284 The GNU roff toolchain has been removed from base. To render manpages 285 which are not supported by mandoc(1), man(1) can fallback on GNU roff 286 from ports (and recommends to install it). 287 To render roff(7) documents, consider using GNU roff from ports or the 288 heirloom doctools roff toolchain from ports via pkg install groff or 289 via pkg install heirloom-doctools. 290 29120170524: 292 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 293 smaller runtime footprint builds. This is useful for embedded systems 294 which only require one chipset support. 295 296 If you load it as a module, make sure this is in /boot/loader.conf: 297 298 if_ath_load="YES" 299 300 This will load the HAL, all chip/RF backends and if_ath_pci. 301 If you have if_ath_pci in /boot/loader.conf, ensure it is after 302 if_ath or it will not load any HAL chipset support. 303 304 If you want to selectively load things (eg on ye cheape ARM/MIPS 305 platforms where RAM is at a premium) you should: 306 307 * load ath_hal 308 * load the chip modules in question 309 * load ath_rate, ath_dfs 310 * load ath_main 311 * load if_ath_pci and/or if_ath_ahb depending upon your particular 312 bus bind type - this is where probe/attach is done. 313 314 For further comments/feedback, poke adrian@ . 315 31620170523: 317 The "ino64" 64-bit inode project has been committed, which extends 318 a number of types to 64 bits. Upgrading in place requires care and 319 adherence to the documented upgrade procedure. 320 321 If using a custom kernel configuration ensure that the 322 COMPAT_FREEBSD11 option is included (as during the upgrade the 323 system will be running the ino64 kernel with the existing world). 324 325 For the safest in-place upgrade begin by removing previous build 326 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the 327 full procedure documented below under the heading "To rebuild 328 everything and install it on the current system." Specifically, 329 a reboot is required after installing the new kernel before 330 installing world. 331 33220170424: 333 The NATM framework including the en(4), fatm(4), hatm(4), and 334 patm(4) devices has been removed. Consumers should plan a 335 migration before the end-of-life date for FreeBSD 11. 336 33720170420: 338 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 339 diff has not been implemented, if those are needed a newer version of 340 GNU diff is available via the diffutils package under the gdiff name. 341 34220170413: 343 As of r316810 for ipfilter, keep frags is no longer assumed when 344 keep state is specified in a rule. r316810 aligns ipfilter with 345 documentation in man pages separating keep frags from keep state. 346 This allows keep state to be specified without forcing keep frags 347 and allows keep frags to be specified independently of keep state. 348 To maintain previous behaviour, also specify keep frags with 349 keep state (as documented in ipf.conf.5). 350 35120170407: 352 arm64 builds now use the base system LLD 4.0.0 linker by default, 353 instead of requiring that the aarch64-binutils port or package be 354 installed. To continue using aarch64-binutils, set 355 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 356 35720170405: 358 The UDP optimization in entry 20160818 that added the sysctl 359 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 360 packets will no longer be treated as L3 broadcast packets. 361 36220170331: 363 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 364 use any explicitly assigned loopback address available in the jail 365 instead of using the first assigned address of the jail. 366 36720170329: 368 The ctl.ko module no longer implements the iSCSI target frontend: 369 cfiscsi.ko does instead. 370 371 If building cfiscsi.ko as a kernel module, the module can be loaded 372 via one of the following methods: 373 - `cfiscsi_load="YES"` in loader.conf(5). 374 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 375 - ctladm(8)/ctld(8), when compiled with iSCSI support 376 (`WITH_ISCSI=yes` in src.conf(5)) 377 378 Please see cfiscsi(4) for more details. 379 38020170316: 381 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 382 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 383 same source (previously, the dependency of mmcsd.ko on mmc.ko was 384 missing, but mmcsd.ko now will refuse to load if it is incompatible 385 with mmc.ko). 386 38720170315: 388 The syntax of ipfw(8) named states was changed to avoid ambiguity. 389 If you have used named states in the firewall rules, you need to modify 390 them after installworld and before rebooting. Now named states must 391 be prefixed with colon. 392 39320170311: 394 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 395 removed as the userland we provide cannot use them. The KMS version 396 (sys/dev/drm2) supports the same hardware. 397 39820170302: 399 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 400 Please see the 20141231 entry below for information about prerequisites 401 and upgrading, if you are not already using clang 3.5.0 or higher. 402 40320170221: 404 The code that provides support for ZFS .zfs/ directory functionality 405 has been reimplemented. It's not possible now to create a snapshot 406 by mkdir under .zfs/snapshot/. That should be the only user visible 407 change. 408 40920170216: 410 EISA bus support has been removed. The WITH_EISA option is no longer 411 valid. 412 41320170215: 414 MCA bus support has been removed. 415 41620170127: 417 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 418 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 419 42020170112: 421 The EM_MULTIQUEUE kernel configuration option is deprecated now that 422 the em(4) driver conforms to iflib specifications. 423 42420170109: 425 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 426 IFLIB. If you have a custom kernel configuration that excludes em(4) 427 but you use igb(4), you need to re-add em(4) to your custom configuration. 428 42920161217: 430 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 431 Please see the 20141231 entry below for information about prerequisites 432 and upgrading, if you are not already using clang 3.5.0 or higher. 433 43420161124: 435 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 436 Please see the 20141231 entry below for information about prerequisites 437 and upgrading, if you are not already using clang 3.5.0 or higher. 438 43920161119: 440 The layout of the pmap structure has changed for powerpc to put the pmap 441 statistics at the front for all CPU variations. libkvm(3) and all tools 442 that link against it need to be recompiled. 443 44420161030: 445 isl(4) and cyapa(4) drivers now require a new driver, 446 chromebook_platform(4), to work properly on Chromebook-class hardware. 447 On other types of hardware the drivers may need to be configured using 448 device hints. Please see the corresponding manual pages for details. 449 45020161017: 451 The urtwn(4) driver was merged into rtwn(4) and now consists of 452 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 453 parts. 454 Also, firmware for RTL8188CE was renamed due to possible name 455 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 456 45720161015: 458 GNU rcs has been removed from base. It is available as packages: 459 - rcs: Latest GPLv3 GNU rcs version. 460 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 461 removed from base. 462 46320161008: 464 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 465 modules now requires that the kernel configuration contain the 466 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 467 46820161003: 469 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 470 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 471 47220160924: 473 Relocatable object files with the extension of .So have been renamed 474 to use an extension of .pico instead. The purpose of this change is 475 to avoid a name clash with shared libraries on case-insensitive file 476 systems. On those file systems, foo.So is the same file as foo.so. 477 47820160918: 479 GNU rcs has been turned off by default. It can (temporarily) be built 480 again by adding WITH_RCS knob in src.conf. 481 Otherwise, GNU rcs is available from packages: 482 - rcs: Latest GPLv3 GNU rcs version. 483 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 484 48520160918: 486 The backup_uses_rcs functionality has been removed from rc.subr. 487 48820160908: 489 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 490 two separate components, QUEUE_MACRO_DEBUG_TRACE and 491 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 492 QUEUE_MACRO_DEBUG behavior. 493 49420160824: 495 r304787 changed some ioctl interfaces between the iSCSI userspace 496 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 497 rebuilt to work with new kernels. __FreeBSD_version has been bumped 498 to 1200005. 499 50020160818: 501 The UDP receive code has been updated to only treat incoming UDP 502 packets that were addressed to an L2 broadcast address as L3 503 broadcast packets. It is not expected that this will affect any 504 standards-conforming UDP application. The new behaviour can be 505 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 506 0. 507 50820160818: 509 Remove the openbsd_poll system call. 510 __FreeBSD_version has been bumped because of this. 511 51220160622: 513 The libc stub for the pipe(2) system call has been replaced with 514 a wrapper that calls the pipe2(2) system call and the pipe(2) 515 system call is now only implemented by the kernels that include 516 "options COMPAT_FREEBSD10" in their config file (this is the 517 default). Users should ensure that this option is enabled in 518 their kernel or upgrade userspace to r302092 before upgrading their 519 kernel. 520 52120160527: 522 CAM will now strip leading spaces from SCSI disks' serial numbers. 523 This will affect users who create UFS filesystems on SCSI disks using 524 those disk's diskid device nodes. For example, if /etc/fstab 525 previously contained a line like 526 "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should 527 change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom 528 transforms like gmirror may also be affected. ZFS users should 529 generally be fine. 530 53120160523: 532 The bitstring(3) API has been updated with new functionality and 533 improved performance. But it is binary-incompatible with the old API. 534 Objects built with the new headers may not be linked against objects 535 built with the old headers. 536 53720160520: 538 The brk and sbrk functions have been removed from libc on arm64. 539 Binutils from ports has been updated to not link to these 540 functions and should be updated to the latest version before 541 installing a new libc. 542 54320160517: 544 The armv6 port now defaults to hard float ABI. Limited support 545 for running both hardfloat and soft float on the same system 546 is available using the libraries installed with -DWITH_LIBSOFT. 547 This has only been tested as an upgrade path for installworld 548 and packages may fail or need manual intervention to run. New 549 packages will be needed. 550 551 To update an existing self-hosted armv6hf system, you must add 552 TARGET_ARCH=armv6 on the make command line for both the build 553 and the install steps. 554 55520160510: 556 Kernel modules compiled outside of a kernel build now default to 557 installing to /boot/modules instead of /boot/kernel. Many kernel 558 modules built this way (such as those in ports) already overrode 559 KMODDIR explicitly to install into /boot/modules. However, 560 manually building and installing a module from /sys/modules will 561 now install to /boot/modules instead of /boot/kernel. 562 56320160414: 564 The CAM I/O scheduler has been committed to the kernel. There should be 565 no user visible impact. This does enable NCQ Trim on ada SSDs. While the 566 list of known rogues that claim support for this but actually corrupt 567 data is believed to be complete, be on the lookout for data 568 corruption. The known rogue list is believed to be complete: 569 570 o Crucial MX100, M550 drives with MU01 firmware. 571 o Micron M510 and M550 drives with MU01 firmware. 572 o Micron M500 prior to MU07 firmware 573 o Samsung 830, 840, and 850 all firmwares 574 o FCCT M500 all firmwares 575 576 Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware 577 with working NCQ TRIM. For Micron branded drives, see your sales rep for 578 updated firmware. Black listed drives will work correctly because these 579 drives work correctly so long as no NCQ TRIMs are sent to them. Given 580 this list is the same as found in Linux, it's believed there are no 581 other rogues in the market place. All other models from the above 582 vendors work. 583 584 To be safe, if you are at all concerned, you can quirk each of your 585 drives to prevent NCQ from being sent by setting: 586 kern.cam.ada.X.quirks="0x2" 587 in loader.conf. If the drive requires the 4k sector quirk, set the 588 quirks entry to 0x3. 589 59020160330: 591 The FAST_DEPEND build option has been removed and its functionality is 592 now the one true way. The old mkdep(1) style of 'make depend' has 593 been removed. See 20160311 for further details. 594 59520160317: 596 Resource range types have grown from unsigned long to uintmax_t. All 597 drivers, and anything using libdevinfo, need to be recompiled. 598 59920160311: 600 WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree 601 builds. It no longer runs mkdep(1) during 'make depend', and the 602 'make depend' stage can safely be skipped now as it is auto ran 603 when building 'make all' and will generate all SRCS and DPSRCS before 604 building anything else. Dependencies are gathered at compile time with 605 -MF flags kept in separate .depend files per object file. Users should 606 run 'make cleandepend' once if using -DNO_CLEAN to clean out older 607 stale .depend files. 608 60920160306: 610 On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into 611 kernel modules. Therefore, if you load any kernel modules at boot time, 612 please install the boot loaders after you install the kernel, but before 613 rebooting, e.g.: 614 615 make buildworld 616 make kernel KERNCONF=YOUR_KERNEL_HERE 617 make -C sys/boot install 618 <reboot in single user> 619 620 Then follow the usual steps, described in the General Notes section, 621 below. 622 62320160305: 624 Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please 625 see the 20141231 entry below for information about prerequisites and 626 upgrading, if you are not already using clang 3.5.0 or higher. 627 62820160301: 629 The AIO subsystem is now a standard part of the kernel. The 630 VFS_AIO kernel option and aio.ko kernel module have been removed. 631 Due to stability concerns, asynchronous I/O requests are only 632 permitted on sockets and raw disks by default. To enable 633 asynchronous I/O requests on all file types, set the 634 vfs.aio.enable_unsafe sysctl to a non-zero value. 635 63620160226: 637 The ELF object manipulation tool objcopy is now provided by the 638 ELF Tool Chain project rather than by GNU binutils. It should be a 639 drop-in replacement, with the addition of arm64 support. The 640 (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set 641 to obtain the GNU version if necessary. 642 64320160129: 644 Building ZFS pools on top of zvols is prohibited by default. That 645 feature has never worked safely; it's always been prone to deadlocks. 646 Using a zvol as the backing store for a VM guest's virtual disk will 647 still work, even if the guest is using ZFS. Legacy behavior can be 648 restored by setting vfs.zfs.vol.recursive=1. 649 65020160119: 651 The NONE and HPN patches has been removed from OpenSSH. They are 652 still available in the security/openssh-portable port. 653 65420160113: 655 With the addition of ypldap(8), a new _ypldap user is now required 656 during installworld. "mergemaster -p" can be used to add the user 657 prior to installworld, as documented in the handbook. 658 65920151216: 660 The tftp loader (pxeboot) now uses the option root-path directive. As a 661 consequence it no longer looks for a pxeboot.4th file on the tftp 662 server. Instead it uses the regular /boot infrastructure as with the 663 other loaders. 664 66520151211: 666 The code to start recording plug and play data into the modules has 667 been committed. While the old tools will properly build a new kernel, 668 a number of warnings about "unknown metadata record 4" will be produced 669 for an older kldxref. To avoid such warnings, make sure to rebuild 670 the kernel toolchain (or world). Make sure that you have r292078 or 671 later when trying to build 292077 or later before rebuilding. 672 67320151207: 674 Debug data files are now built by default with 'make buildworld' and 675 installed with 'make installworld'. This facilitates debugging but 676 requires more disk space both during the build and for the installed 677 world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes 678 in src.conf(5). 679 68020151130: 681 r291527 changed the internal interface between the nfsd.ko and 682 nfscommon.ko modules. As such, they must both be upgraded to-gether. 683 __FreeBSD_version has been bumped because of this. 684 68520151108: 686 Add support for unicode collation strings leads to a change of 687 order of files listed by ls(1) for example. To get back to the old 688 behaviour, set LC_COLLATE environment variable to "C". 689 690 Databases administrators will need to reindex their databases given 691 collation results will be different. 692 693 Due to a bug in install(1) it is recommended to remove the ancient 694 locales before running make installworld. 695 696 rm -rf /usr/share/locale/* 697 69820151030: 699 The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring 700 libcrypto.so.7 or libssl.so.7 must be recompiled. 701 70220151020: 703 Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. 704 Kernel modules isp_2400_multi and isp_2500_multi were removed and 705 should be replaced with isp_2400 and isp_2500 modules respectively. 706 70720151017: 708 The build previously allowed using 'make -n' to not recurse into 709 sub-directories while showing what commands would be executed, and 710 'make -n -n' to recursively show commands. Now 'make -n' will recurse 711 and 'make -N' will not. 712 71320151012: 714 If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster 715 and etcupdate will now use this file. A custom sendmail.cf is now 716 updated via this mechanism rather than via installworld. If you had 717 excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may 718 want to remove the exclusion or change it to "always install". 719 /etc/mail/sendmail.cf is now managed the same way regardless of 720 whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using 721 SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 722 72320151011: 724 Compatibility shims for legacy ATA device names have been removed. 725 It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases 726 and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* 727 environment variables, /dev/ad* and /dev/ar* symbolic links. 728 72920151006: 730 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. 731 Please see the 20141231 entry below for information about prerequisites 732 and upgrading, if you are not already using clang 3.5.0 or higher. 733 73420150924: 735 Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, 736 and renamed from .symbols to .debug. This reduces the size requirements 737 on the boot partition or file system and provides consistency with 738 userland debug files. 739 740 When using the supported kernel installation method the 741 /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) 742 as is done with /boot/kernel. 743 744 Developers wishing to maintain the historical behavior of installing 745 debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 746 74720150827: 748 The wireless drivers had undergone changes that remove the 'parent 749 interface' from the ifconfig -l output. The rc.d network scripts 750 used to check presence of a parent interface in the list, so old 751 scripts would fail to start wireless networking. Thus, etcupdate(3) 752 or mergemaster(8) run is required after kernel update, to update your 753 rc.d scripts in /etc. 754 75520150827: 756 pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' 757 These configurations are now automatically interpreted as 758 'scrub fragment reassemble'. 759 76020150817: 761 Kernel-loadable modules for the random(4) device are back. To use 762 them, the kernel must have 763 764 device random 765 options RANDOM_LOADABLE 766 767 kldload(8) can then be used to load random_fortuna.ko 768 or random_yarrow.ko. Please note that due to the indirect 769 function calls that the loadable modules need to provide, 770 the build-in variants will be slightly more efficient. 771 772 The random(4) kernel option RANDOM_DUMMY has been retired due to 773 unpopularity. It was not all that useful anyway. 774 77520150813: 776 The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. 777 Control over building the ELF Tool Chain tools is now provided by 778 the WITHOUT_TOOLCHAIN knob. 779 78020150810: 781 The polarity of Pulse Per Second (PPS) capture events with the 782 uart(4) driver has been corrected. Prior to this change the PPS 783 "assert" event corresponded to the trailing edge of a positive PPS 784 pulse and the "clear" event was the leading edge of the next pulse. 785 786 As the width of a PPS pulse in a typical GPS receiver is on the 787 order of 1 millisecond, most users will not notice any significant 788 difference with this change. 789 790 Anyone who has compensated for the historical polarity reversal by 791 configuring a negative offset equal to the pulse width will need to 792 remove that workaround. 793 79420150809: 795 The default group assigned to /dev/dri entries has been changed 796 from 'wheel' to 'video' with the id of '44'. If you want to have 797 access to the dri devices please add yourself to the video group 798 with: 799 800 # pw groupmod video -m $USER 801 80220150806: 803 The menu.rc and loader.rc files will now be replaced during 804 upgrades. Please migrate local changes to menu.rc.local and 805 loader.rc.local instead. 806 80720150805: 808 GNU Binutils versions of addr2line, c++filt, nm, readelf, size, 809 strings and strip have been removed. The src.conf(5) knob 810 WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 811 81220150728: 813 As ZFS requires more kernel stack pages than is the default on some 814 architectures e.g. i386, it now warns if KSTACK_PAGES is less than 815 ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). 816 817 Please consider using 'options KSTACK_PAGES=X' where X is greater 818 than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 819 82020150706: 821 sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 822 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by 823 default, i.e., they will not contain "::". For example, instead 824 of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet 825 to have a more specific match, such as different map entries for 826 IPv6:0:0 vs IPv6:0. This change requires that configuration 827 data (including maps, files, classes, custom ruleset, etc.) must 828 use the same format, so make certain such configuration data is 829 upgrading. As a very simple check search for patterns like 830 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old 831 behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or 832 the cf option UseCompressedIPv6Addresses. 833 83420150630: 835 The default kernel entropy-processing algorithm is now 836 Fortuna, replacing Yarrow. 837 838 Assuming you have 'device random' in your kernel config 839 file, the configurations allow a kernel option to override 840 this default. You may choose *ONE* of: 841 842 options RANDOM_YARROW # Legacy /dev/random algorithm. 843 options RANDOM_DUMMY # Blocking-only driver. 844 845 If you have neither, you get Fortuna. For most people, 846 read no further, Fortuna will give a /dev/random that works 847 like it always used to, and the difference will be irrelevant. 848 849 If you remove 'device random', you get *NO* kernel-processed 850 entropy at all. This may be acceptable to folks building 851 embedded systems, but has complications. Carry on reading, 852 and it is assumed you know what you need. 853 854 *PLEASE* read random(4) and random(9) if you are in the 855 habit of tweaking kernel configs, and/or if you are a member 856 of the embedded community, wanting specific and not-usual 857 behaviour from your security subsystems. 858 859 NOTE!! If you use RANDOM_DUMMY and/or have no 'device 860 random', you will NOT have a functioning /dev/random, and 861 many cryptographic features will not work, including SSH. 862 You may also find strange behaviour from the random(3) set 863 of library functions, in particular sranddev(3), srandomdev(3) 864 and arc4random(3). The reason for this is that the KERN_ARND 865 sysctl only returns entropy if it thinks it has some to 866 share, and with RANDOM_DUMMY or no 'device random' this 867 will never happen. 868 86920150623: 870 An additional fix for the issue described in the 20150614 sendmail 871 entry below has been committed in revision 284717. 872 87320150616: 874 FreeBSD's old make (fmake) has been removed from the system. It is 875 available as the devel/fmake port or via pkg install fmake. 876 87720150615: 878 The fix for the issue described in the 20150614 sendmail entry 879 below has been committed in revision 284436. The work 880 around described in that entry is no longer needed unless the 881 default setting is overridden by a confDH_PARAMETERS configuration 882 setting of '5' or pointing to a 512 bit DH parameter file. 883 88420150614: 885 ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from 886 atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf 887 and devel/kyua to version 0.20+ and adjust any calling code to work 888 with Kyuafile and kyua. 889 89020150614: 891 The import of openssl to address the FreeBSD-SA-15:10.openssl 892 security advisory includes a change which rejects handshakes 893 with DH parameters below 768 bits. sendmail releases prior 894 to 8.15.2 (not yet released), defaulted to a 512 bit 895 DH parameter setting for client connections. To work around 896 this interoperability, sendmail can be configured to use a 897 2048 bit DH parameter by: 898 899 1. Edit /etc/mail/`hostname`.mc 900 2. If a setting for confDH_PARAMETERS does not exist or 901 exists and is set to a string beginning with '5', 902 replace it with '2'. 903 3. If a setting for confDH_PARAMETERS exists and is set to 904 a file path, create a new file with: 905 openssl dhparam -out /path/to/file 2048 906 4. Rebuild the .cf file: 907 cd /etc/mail/; make; make install 908 5. Restart sendmail: 909 cd /etc/mail/; make restart 910 911 A sendmail patch is coming, at which time this file will be 912 updated. 913 91420150604: 915 Generation of legacy formatted entries have been disabled by default 916 in pwd_mkdb(8), as all base system consumers of the legacy formatted 917 entries were converted to use the new format by default when the new, 918 machine independent format have been added and supported since FreeBSD 919 5.x. 920 921 Please see the pwd_mkdb(8) manual page for further details. 922 92320150525: 924 Clang and llvm have been upgraded to 3.6.1 release. Please see the 925 20141231 entry below for information about prerequisites and upgrading, 926 if you are not already using 3.5.0 or higher. 927 92820150521: 929 TI platform code switched to using vendor DTS files and this update 930 may break existing systems running on Beaglebone, Beaglebone Black, 931 and Pandaboard: 932 933 - dtb files should be regenerated/reinstalled. Filenames are the 934 same but content is different now 935 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 936 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 937 addressing scheme is now pin 25 on /dev/gpioc3. 938 - Pandaboard: /etc/ttys should be updated, serial console device is 939 now /dev/ttyu2, not /dev/ttyu0 940 94120150501: 942 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 943 If you need the GNU extension from groff soelim(1), install groff 944 from package: pkg install groff, or via ports: textproc/groff. 945 94620150423: 947 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 948 defined in symlink(7); previously symlinks were silently ignored. 949 95020150415: 951 The const qualifier has been removed from iconv(3) to comply with 952 POSIX. The ports tree is aware of this from r384038 onwards. 953 95420150416: 955 Libraries specified by LIBADD in Makefiles must have a corresponding 956 DPADD_<lib> variable to ensure correct dependencies. This is now 957 enforced in src.libnames.mk. 958 95920150324: 960 From legacy ata(4) driver was removed support for SATA controllers 961 supported by more functional drivers ahci(4), siis(4) and mvs(4). 962 Kernel modules ataahci and ataadaptec were removed completely, 963 replaced by ahci and mvs modules respectively. 964 96520150315: 966 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 967 the 20141231 entry below for information about prerequisites and 968 upgrading, if you are not already using 3.5.0 or higher. 969 97020150307: 971 The 32-bit PowerPC kernel has been changed to a position-independent 972 executable. This can only be booted with a version of loader(8) 973 newer than January 31, 2015, so make sure to update both world and 974 kernel before rebooting. 975 97620150217: 977 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 978 but before r278950, the RNG was not seeded properly. Immediately 979 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 980 ssh keys or openssl keys) that were generated w/ a kernel from that 981 range. This does not affect programs that directly used /dev/random 982 or /dev/urandom. All userland uses of arc4random(3) are affected. 983 98420150210: 985 The autofs(4) ABI was changed in order to restore binary compatibility 986 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 987 with the new kernel. 988 98920150131: 990 The powerpc64 kernel has been changed to a position-independent 991 executable. This can only be booted with a new version of loader(8), 992 so make sure to update both world and kernel before rebooting. 993 99420150118: 995 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 996 only release, no new features have been added. Please see the 20141231 997 entry below for information about prerequisites and upgrading, if you 998 are not already using 3.5.0. 999 100020150107: 1001 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 1002 taken from the ELF Tool Chain project rather than GNU binutils. They 1003 should be drop-in replacements, with the addition of arm64 support. 1004 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 1005 binutils tools, if necessary. See 20150805 for updated information. 1006 100720150105: 1008 The default Unbound configuration now enables remote control 1009 using a local socket. Users who have already enabled the 1010 local_unbound service should regenerate their configuration 1011 by running "service local_unbound setup" as root. 1012 101320150102: 1014 The GNU texinfo and GNU info pages have been removed. 1015 To be able to view GNU info pages please install texinfo from ports. 1016 101720141231: 1018 Clang, llvm and lldb have been upgraded to 3.5.0 release. 1019 1020 As of this release, a prerequisite for building clang, llvm and lldb is 1021 a C++11 capable compiler and C++11 standard library. This means that to 1022 be able to successfully build the cross-tools stage of buildworld, with 1023 clang as the bootstrap compiler, your system compiler or cross compiler 1024 should either be clang 3.3 or later, or gcc 4.8 or later, and your 1025 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 1026 later. 1027 1028 On any standard FreeBSD 10.x or 11.x installation, where clang and 1029 libc++ are on by default (that is, on x86 or arm), this should work out 1030 of the box. 1031 1032 On 9.x installations where clang is enabled by default, e.g. on x86 and 1033 powerpc, libc++ will not be enabled by default, so libc++ should be 1034 built (with clang) and installed first. If both clang and libc++ are 1035 missing, build clang first, then use it to build libc++. 1036 1037 On 8.x and earlier installations, upgrade to 9.x first, and then follow 1038 the instructions for 9.x above. 1039 1040 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 1041 default, and do not build clang. 1042 1043 Many embedded systems are resource constrained, and will not be able to 1044 build clang in a reasonable time, or in some cases at all. In those 1045 cases, cross building bootable systems on amd64 is a workaround. 1046 1047 This new version of clang introduces a number of new warnings, of which 1048 the following are most likely to appear: 1049 1050 -Wabsolute-value 1051 1052 This warns in two cases, for both C and C++: 1053 * When the code is trying to take the absolute value of an unsigned 1054 quantity, which is effectively a no-op, and almost never what was 1055 intended. The code should be fixed, if at all possible. If you are 1056 sure that the unsigned quantity can be safely cast to signed, without 1057 loss of information or undefined behavior, you can add an explicit 1058 cast, or disable the warning. 1059 1060 * When the code is trying to take an absolute value, but the called 1061 abs() variant is for the wrong type, which can lead to truncation. 1062 If you want to disable the warning instead of fixing the code, please 1063 make sure that truncation will not occur, or it might lead to unwanted 1064 side-effects. 1065 1066 -Wtautological-undefined-compare and 1067 -Wundefined-bool-conversion 1068 1069 These warn when C++ code is trying to compare 'this' against NULL, while 1070 'this' should never be NULL in well-defined C++ code. However, there is 1071 some legacy (pre C++11) code out there, which actively abuses this 1072 feature, which was less strictly defined in previous C++ versions. 1073 1074 Squid and openjdk do this, for example. The warning can be turned off 1075 for C++98 and earlier, but compiling the code in C++11 mode might result 1076 in unexpected behavior; for example, the parts of the program that are 1077 unreachable could be optimized away. 1078 107920141222: 1080 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 1081 kernel sources have been removed. The .h files remain, since some 1082 utilities include them. This will need to be fixed later. 1083 If "mount -t oldnfs ..." is attempted, it will fail. 1084 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 1085 the utilities will report errors. 1086 108720141121: 1088 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 1089 directories to top level SUBDIR variable when their parent 1090 directory is included in LOCAL_DIRS. Users with build systems with 1091 such hierarchies and without SUBDIR entries in the parent 1092 directory Makefiles should add them or add the directories to 1093 LOCAL_DIRS. 1094 109520141109: 1096 faith(4) and faithd(8) have been removed from the base system. Faith 1097 has been obsolete for a very long time. 1098 109920141104: 1100 vt(4), the new console driver, is enabled by default. It brings 1101 support for Unicode and double-width characters, as well as 1102 support for UEFI and integration with the KMS kernel video 1103 drivers. 1104 1105 You may need to update your console settings in /etc/rc.conf, 1106 most probably the keymap. During boot, /etc/rc.d/syscons will 1107 indicate what you need to do. 1108 1109 vt(4) still has issues and lacks some features compared to 1110 syscons(4). See the wiki for up-to-date information: 1111 https://wiki.freebsd.org/Newcons 1112 1113 If you want to keep using syscons(4), you can do so by adding 1114 the following line to /boot/loader.conf: 1115 kern.vty=sc 1116 111720141102: 1118 pjdfstest has been integrated into kyua as an opt-in test suite. 1119 Please see share/doc/pjdfstest/README for more details on how to 1120 execute it. 1121 112220141009: 1123 gperf has been removed from the base system for architectures 1124 that use clang. Ports that require gperf will obtain it from the 1125 devel/gperf port. 1126 112720140923: 1128 pjdfstest has been moved from tools/regression/pjdfstest to 1129 contrib/pjdfstest . 1130 113120140922: 1132 At svn r271982, The default linux compat kernel ABI has been adjusted 1133 to 2.6.18 in support of the linux-c6 compat ports infrastructure 1134 update. If you wish to continue using the linux-f10 compat ports, 1135 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 1136 encouraged to update their linux-compat packages to linux-c6 during 1137 their next update cycle. 1138 113920140729: 1140 The ofwfb driver, used to provide a graphics console on PowerPC when 1141 using vt(4), no longer allows mmap() of all physical memory. This 1142 will prevent Xorg on PowerPC with some ATI graphics cards from 1143 initializing properly unless x11-servers/xorg-server is updated to 1144 1.12.4_8 or newer. 1145 114620140723: 1147 The xdev targets have been converted to using TARGET and 1148 TARGET_ARCH instead of XDEV and XDEV_ARCH. 1149 115020140719: 1151 The default unbound configuration has been modified to address 1152 issues with reverse lookups on networks that use private 1153 address ranges. If you use the local_unbound service, run 1154 "service local_unbound setup" as root to regenerate your 1155 configuration, then "service local_unbound reload" to load the 1156 new configuration. 1157 115820140709: 1159 The GNU texinfo and GNU info pages are not built and installed 1160 anymore, WITH_INFO knob has been added to allow to built and install 1161 them again. 1162 UPDATE: see 20150102 entry on texinfo's removal 1163 116420140708: 1165 The GNU readline library is now an INTERNALLIB - that is, it is 1166 statically linked into consumers (GDB and variants) in the base 1167 system, and the shared library is no longer installed. The 1168 devel/readline port is available for third party software that 1169 requires readline. 1170 117120140702: 1172 The Itanium architecture (ia64) has been removed from the list of 1173 known architectures. This is the first step in the removal of the 1174 architecture. 1175 117620140701: 1177 Commit r268115 has added NFSv4.1 server support, merged from 1178 projects/nfsv4.1-server. Since this includes changes to the 1179 internal interfaces between the NFS related modules, a full 1180 build of the kernel and modules will be necessary. 1181 __FreeBSD_version has been bumped. 1182 118320140629: 1184 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 1185 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 1186 which differs from the behaviour controlled by this knob.) 1187 118820140619: 1189 Maximal length of the serial number in CTL was increased from 16 to 1190 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 1191 and ctld, need to be rebuilt to work with a new kernel. 1192 119320140606: 1194 The libatf-c and libatf-c++ major versions were downgraded to 0 and 1195 1 respectively to match the upstream numbers. They were out of 1196 sync because, when they were originally added to FreeBSD, the 1197 upstream versions were not respected. These libraries are private 1198 and not yet built by default, so renumbering them should be a 1199 non-issue. However, unclean source trees will yield broken test 1200 programs once the operator executes "make delete-old-libs" after a 1201 "make installworld". 1202 1203 Additionally, the atf-sh binary was made private by moving it into 1204 /usr/libexec/. Already-built shell test programs will keep the 1205 path to the old binary so they will break after "make delete-old" 1206 is run. 1207 1208 If you are using WITH_TESTS=yes (not the default), wipe the object 1209 tree and rebuild from scratch to prevent spurious test failures. 1210 This is only needed once: the misnumbered libraries and misplaced 1211 binaries have been added to OptionalObsoleteFiles.inc so they will 1212 be removed during a clean upgrade. 1213 121420140512: 1215 Clang and llvm have been upgraded to 3.4.1 release. 1216 121720140508: 1218 We bogusly installed src.opts.mk in /usr/share/mk. This file should 1219 be removed to avoid issues in the future (and has been added to 1220 ObsoleteFiles.inc). 1221 122220140505: 1223 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 1224 past, it affected all builds that used the bsd.*.mk files. The old 1225 behavior was a bug, but people may have relied upon it. To get this 1226 behavior back, you can .include /etc/src.conf from /etc/make.conf 1227 (which is still global and isn't changed). This also changes the 1228 behavior of incremental builds inside the tree of individual 1229 directories. Set MAKESYSPATH to ".../share/mk" to do that. 1230 Although this has survived make universe and some upgrade scenarios, 1231 other upgrade scenarios may have broken. At least one form of 1232 temporary breakage was fixed with MAKESYSPATH settings for buildworld 1233 as well... In cases where MAKESYSPATH isn't working with this 1234 setting, you'll need to set it to the full path to your tree. 1235 1236 One side effect of all this cleaning up is that bsd.compiler.mk 1237 is no longer implicitly included by bsd.own.mk. If you wish to 1238 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 1239 as well. 1240 124120140430: 1242 The lindev device has been removed since /dev/full has been made a 1243 standard device. __FreeBSD_version has been bumped. 1244 124520140424: 1246 The knob WITHOUT_VI was added to the base system, which controls 1247 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 1248 in order to reorder files share/termcap and didn't build ex(1) as a 1249 build tool, so building/installing with WITH_VI is highly advised for 1250 build hosts for older releases. 1251 1252 This issue has been fixed in stable/9 and stable/10 in r277022 and 1253 r276991, respectively. 1254 125520140418: 1256 The YES_HESIOD knob has been removed. It has been obsolete for 1257 a decade. Please move to using WITH_HESIOD instead or your builds 1258 will silently lack HESIOD. 1259 126020140405: 1261 The uart(4) driver has been changed with respect to its handling 1262 of the low-level console. Previously the uart(4) driver prevented 1263 any process from changing the baudrate or the CLOCAL and HUPCL 1264 control flags. By removing the restrictions, operators can make 1265 changes to the serial console port without having to reboot. 1266 However, when getty(8) is started on the serial device that is 1267 associated with the low-level console, a misconfigured terminal 1268 line in /etc/ttys will now have a real impact. 1269 Before upgrading the kernel, make sure that /etc/ttys has the 1270 serial console device configured as 3wire without baudrate to 1271 preserve the previous behaviour. E.g: 1272 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 1273 127420140306: 1275 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 1276 to improve performance. To re-enable it, if needed, run rpcbind 1277 with command line option -W. 1278 127920140226: 1280 Switched back to the GPL dtc compiler due to updates in the upstream 1281 dts files not being supported by the BSDL dtc compiler. You will need 1282 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 1283 may result while building dtb files during a kernel build if you fail 1284 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 1285 128620140216: 1287 Clang and llvm have been upgraded to 3.4 release. 1288 128920140216: 1290 The nve(4) driver has been removed. Please use the nfe(4) driver 1291 for NVIDIA nForce MCP Ethernet adapters instead. 1292 129320140212: 1294 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 1295 This could cause certain C++ applications using shared libraries built 1296 against the previous version of libc++ to crash. The incompatibility 1297 has now been fixed, but any C++ applications or shared libraries built 1298 between r261283 and r261801 should be recompiled. 1299 130020140204: 1301 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 1302 capability mode support. Please note that enabling the feature in 1303 kernel is still highly recommended. 1304 130520140131: 1306 OpenSSH is now built with sandbox support, and will use sandbox as 1307 the default privilege separation method. This requires Capsicum 1308 capability mode support in kernel. 1309 131020140128: 1311 The libelf and libdwarf libraries have been updated to newer 1312 versions from upstream. Shared library version numbers for 1313 these two libraries were bumped. Any ports or binaries 1314 requiring these two libraries should be recompiled. 1315 __FreeBSD_version is bumped to 1100006. 1316 131720140110: 1318 If a Makefile in a tests/ directory was auto-generating a Kyuafile 1319 instead of providing an explicit one, this would prevent such 1320 Makefile from providing its own Kyuafile in the future during 1321 NO_CLEAN builds. This has been fixed in the Makefiles but manual 1322 intervention is needed to clean an objdir if you use NO_CLEAN: 1323 # find /usr/obj -name Kyuafile | xargs rm -f 1324 132520131213: 1326 The behavior of gss_pseudo_random() for the krb5 mechanism 1327 has changed, for applications requesting a longer random string 1328 than produced by the underlying enctype's pseudo-random() function. 1329 In particular, the random string produced from a session key of 1330 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 1331 be different at the 17th octet and later, after this change. 1332 The counter used in the PRF+ construction is now encoded as a 1333 big-endian integer in accordance with RFC 4402. 1334 __FreeBSD_version is bumped to 1100004. 1335 133620131108: 1337 The WITHOUT_ATF build knob has been removed and its functionality 1338 has been subsumed into the more generic WITHOUT_TESTS. If you were 1339 using the former to disable the build of the ATF libraries, you 1340 should change your settings to use the latter. 1341 134220131025: 1343 The default version of mtree is nmtree which is obtained from 1344 NetBSD. The output is generally the same, but may vary 1345 slightly. If you found you need identical output adding 1346 "-F freebsd9" to the command line should do the trick. For the 1347 time being, the old mtree is available as fmtree. 1348 134920131014: 1350 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 1351 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 1352 1.1.4_8 and verify bsdyml not linked in, before running "make 1353 delete-old-libs": 1354 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 1355 or 1356 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 1357 135820131010: 1359 The stable/10 branch has been created in subversion from head 1360 revision r256279. 1361 136220131010: 1363 The rc.d/jail script has been updated to support jail(8) 1364 configuration file. The "jail_<jname>_*" rc.conf(5) variables 1365 for per-jail configuration are automatically converted to 1366 /var/run/jail.<jname>.conf before the jail(8) utility is invoked. 1367 This is transparently backward compatible. See below about some 1368 incompatibilities and rc.conf(5) manual page for more details. 1369 1370 These variables are now deprecated in favor of jail(8) configuration 1371 file. One can use "rc.d/jail config <jname>" command to generate 1372 a jail(8) configuration file in /var/run/jail.<jname>.conf without 1373 running the jail(8) utility. The default pathname of the 1374 configuration file is /etc/jail.conf and can be specified by 1375 using $jail_conf or $jail_<jname>_conf variables. 1376 1377 Please note that jail_devfs_ruleset accepts an integer at 1378 this moment. Please consider to rewrite the ruleset name 1379 with an integer. 1380 138120130930: 1382 BIND has been removed from the base system. If all you need 1383 is a local resolver, simply enable and start the local_unbound 1384 service instead. Otherwise, several versions of BIND are 1385 available in the ports tree. The dns/bind99 port is one example. 1386 1387 With this change, nslookup(1) and dig(1) are no longer in the base 1388 system. Users should instead use host(1) and drill(1) which are 1389 in the base system. Alternatively, nslookup and dig can 1390 be obtained by installing the dns/bind-tools port. 1391 139220130916: 1393 With the addition of unbound(8), a new unbound user is now 1394 required during installworld. "mergemaster -p" can be used to 1395 add the user prior to installworld, as documented in the handbook. 1396 139720130911: 1398 OpenSSH is now built with DNSSEC support, and will by default 1399 silently trust signed SSHFP records. This can be controlled with 1400 the VerifyHostKeyDNS client configuration setting. DNSSEC support 1401 can be disabled entirely with the WITHOUT_LDNS option in src.conf. 1402 140320130906: 1404 The GNU Compiler Collection and C++ standard library (libstdc++) 1405 are no longer built by default on platforms where clang is the system 1406 compiler. You can enable them with the WITH_GCC and WITH_GNUCXX 1407 options in src.conf. 1408 140920130905: 1410 The PROCDESC kernel option is now part of the GENERIC kernel 1411 configuration and is required for the rwhod(8) to work. 1412 If you are using custom kernel configuration, you should include 1413 'options PROCDESC'. 1414 141520130905: 1416 The API and ABI related to the Capsicum framework was modified 1417 in backward incompatible way. The userland libraries and programs 1418 have to be recompiled to work with the new kernel. This includes the 1419 following libraries and programs, but the whole buildworld is 1420 advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl, 1421 kdump, procstat, rwho, rwhod, uniq. 1422 142320130903: 1424 AES-NI intrinsic support has been added to gcc. The AES-NI module 1425 has been updated to use this support. A new gcc is required to build 1426 the aesni module on both i386 and amd64. 1427 142820130821: 1429 The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. 1430 Thus "device padlock_rng" and "device rdrand_rng" should be 1431 used instead of "options PADLOCK_RNG" & "options RDRAND_RNG". 1432 143320130813: 1434 WITH_ICONV has been split into two feature sets. WITH_ICONV now 1435 enables just the iconv* functionality and is now on by default. 1436 WITH_LIBICONV_COMPAT enables the libiconv api and link time 1437 compatibility. Set WITHOUT_ICONV to build the old way. 1438 If you have been using WITH_ICONV before, you will very likely 1439 need to turn on WITH_LIBICONV_COMPAT. 1440 144120130806: 1442 INVARIANTS option now enables DEBUG for code with OpenSolaris and 1443 Illumos origin, including ZFS. If you have INVARIANTS in your 1444 kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG 1445 explicitly. 1446 DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS) 1447 locks if WITNESS option was set. Because that generated a lot of 1448 witness(9) reports and all of them were believed to be false 1449 positives, this is no longer done. New option OPENSOLARIS_WITNESS 1450 can be used to achieve the previous behavior. 1451 145220130806: 1453 Timer values in IPv6 data structures now use time_uptime instead 1454 of time_second. Although this is not a user-visible functional 1455 change, userland utilities which directly use them---ndp(8), 1456 rtadvd(8), and rtsold(8) in the base system---need to be updated 1457 to r253970 or later. 1458 145920130802: 1460 find -delete can now delete the pathnames given as arguments, 1461 instead of only files found below them or if the pathname did 1462 not contain any slashes. Formerly, the following error message 1463 would result: 1464 1465 find: -delete: <path>: relative path potentially not safe 1466 1467 Deleting the pathnames given as arguments can be prevented 1468 without error messages using -mindepth 1 or by changing 1469 directory and passing "." as argument to find. This works in the 1470 old as well as the new version of find. 1471 147220130726: 1473 Behavior of devfs rules path matching has been changed. 1474 Pattern is now always matched against fully qualified devfs 1475 path and slash characters must be explicitly matched by 1476 slashes in pattern (FNM_PATHNAME). Rulesets involving devfs 1477 subdirectories must be reviewed. 1478 147920130716: 1480 The default ARM ABI has changed to the ARM EABI. The old ABI is 1481 incompatible with the ARM EABI and all programs and modules will 1482 need to be rebuilt to work with a new kernel. 1483 1484 To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set. 1485 1486 NOTE: Support for the old ABI will be removed in the future and 1487 users are advised to upgrade. 1488 148920130709: 1490 pkg_install has been disconnected from the build if you really need it 1491 you should add WITH_PKGTOOLS in your src.conf(5). 1492 149320130709: 1494 Most of network statistics structures were changed to be able 1495 keep 64-bits counters. Thus all tools, that work with networking 1496 statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.) 1497 149820130618: 1499 Fix a bug that allowed a tracing process (e.g. gdb) to write 1500 to a memory-mapped file in the traced process's address space 1501 even if neither the traced process nor the tracing process had 1502 write access to that file. 1503 150420130615: 1505 CVS has been removed from the base system. An exact copy 1506 of the code is available from the devel/cvs port. 1507 150820130613: 1509 Some people report the following error after the switch to bmake: 1510 1511 make: illegal option -- J 1512 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable] 1513 ... 1514 *** [buildworld] Error code 2 1515 1516 this likely due to an old instance of make in 1517 ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}) 1518 which src/Makefile will use that blindly, if it exists, so if 1519 you see the above error: 1520 1521 rm -rf `make -V MAKEPATH` 1522 1523 should resolve it. 1524 152520130516: 1526 Use bmake by default. 1527 Whereas before one could choose to build with bmake via 1528 -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old 1529 make. The goal is to remove these knobs for 10-RELEASE. 1530 1531 It is worth noting that bmake (like gmake) treats the command 1532 line as the unit of failure, rather than statements within the 1533 command line. Thus '(cd some/where && dosomething)' is safer 1534 than 'cd some/where; dosomething'. The '()' allows consistent 1535 behavior in parallel build. 1536 153720130429: 1538 Fix a bug that allows NFS clients to issue READDIR on files. 1539 154020130426: 1541 The WITHOUT_IDEA option has been removed because 1542 the IDEA patent expired. 1543 154420130426: 1545 The sysctl which controls TRIM support under ZFS has been renamed 1546 from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been 1547 enabled by default. 1548 154920130425: 1550 The mergemaster command now uses the default MAKEOBJDIRPREFIX 1551 rather than creating it's own in the temporary directory in 1552 order allow access to bootstrapped versions of tools such as 1553 install and mtree. When upgrading from version of FreeBSD where 1554 the install command does not support -l, you will need to 1555 install a new mergemaster command if mergemaster -p is required. 1556 This can be accomplished with the command (cd src/usr.sbin/mergemaster 1557 && make install). 1558 155920130404: 1560 Legacy ATA stack, disabled and replaced by new CAM-based one since 1561 FreeBSD 9.0, completely removed from the sources. Kernel modules 1562 atadisk and atapi*, user-level tools atacontrol and burncd are 1563 removed. Kernel option `options ATA_CAM` is now permanently enabled 1564 and removed. 1565 156620130319: 1567 SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2) 1568 and socketpair(2). Software, in particular Kerberos, may 1569 automatically detect and use these during building. The resulting 1570 binaries will not work on older kernels. 1571 157220130308: 1573 CTL_DISABLE has also been added to the sparc64 GENERIC (for further 1574 information, see the respective 20130304 entry). 1575 157620130304: 1577 Recent commits to callout(9) changed the size of struct callout, 1578 so the KBI is probably heavily disturbed. Also, some functions 1579 in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced 1580 by macros. Every kernel module using it won't load, so rebuild 1581 is requested. 1582 1583 The ctl device has been re-enabled in GENERIC for i386 and amd64, 1584 but does not initialize by default (because of the new CTL_DISABLE 1585 option) to save memory. To re-enable it, remove the CTL_DISABLE 1586 option from the kernel config file or set kern.cam.ctl.disable=0 1587 in /boot/loader.conf. 1588 158920130301: 1590 The ctl device has been disabled in GENERIC for i386 and amd64. 1591 This was done due to the extra memory being allocated at system 1592 initialisation time by the ctl driver which was only used if 1593 a CAM target device was created. This makes a FreeBSD system 1594 unusable on 128MB or less of RAM. 1595 159620130208: 1597 A new compression method (lz4) has been merged to -HEAD. Please 1598 refer to zpool-features(7) for more information. 1599 1600 Please refer to the "ZFS notes" section of this file for information 1601 on upgrading boot ZFS pools. 1602 160320130129: 1604 A BSD-licensed patch(1) variant has been added and is installed 1605 as bsdpatch, being the GNU version the default patch. 1606 To inverse the logic and use the BSD-licensed one as default, 1607 while having the GNU version installed as gnupatch, rebuild 1608 and install world with the WITH_BSD_PATCH knob set. 1609 161020130121: 1611 Due to the use of the new -l option to install(1) during build 1612 and install, you must take care not to directly set the INSTALL 1613 make variable in your /etc/make.conf, /etc/src.conf, or on the 1614 command line. If you wish to use the -C flag for all installs 1615 you may be able to add INSTALL+=-C to /etc/make.conf or 1616 /etc/src.conf. 1617 161820130118: 1619 The install(1) option -M has changed meaning and now takes an 1620 argument that is a file or path to append logs to. In the 1621 unlikely event that -M was the last option on the command line 1622 and the command line contained at least two files and a target 1623 directory the first file will have logs appended to it. The -M 1624 option served little practical purpose in the last decade so its 1625 use is expected to be extremely rare. 1626 162720121223: 1628 After switching to Clang as the default compiler some users of ZFS 1629 on i386 systems started to experience stack overflow kernel panics. 1630 Please consider using 'options KSTACK_PAGES=4' in such configurations. 1631 163220121222: 1633 GEOM_LABEL now mangles label names read from file system metadata. 1634 Mangling affect labels containing spaces, non-printable characters, 1635 '%' or '"'. Device names in /etc/fstab and other places may need to 1636 be updated. 1637 163820121217: 1639 By default, only the 10 most recent kernel dumps will be saved. To 1640 restore the previous behaviour (no limit on the number of kernel dumps 1641 stored in the dump directory) add the following line to /etc/rc.conf: 1642 1643 savecore_flags="" 1644 164520121201: 1646 With the addition of auditdistd(8), a new auditdistd user is now 1647 required during installworld. "mergemaster -p" can be used to 1648 add the user prior to installworld, as documented in the handbook. 1649 165020121117: 1651 The sin6_scope_id member variable in struct sockaddr_in6 is now 1652 filled by the kernel before passing the structure to the userland via 1653 sysctl or routing socket. This means the KAME-specific embedded scope 1654 id in sin6_addr.s6_addr[2] is always cleared in userland application. 1655 This behavior can be controlled by net.inet6.ip6.deembed_scopeid. 1656 __FreeBSD_version is bumped to 1000025. 1657 165820121105: 1659 On i386 and amd64 systems WITH_CLANG_IS_CC is now the default. 1660 This means that the world and kernel will be compiled with clang 1661 and that clang will be installed as /usr/bin/cc, /usr/bin/c++, 1662 and /usr/bin/cpp. To disable this behavior and revert to building 1663 with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions 1664 of current may need to bootstrap WITHOUT_CLANG first if the clang 1665 build fails (its compatibility window doesn't extend to the 9 stable 1666 branch point). 1667 166820121102: 1669 The IPFIREWALL_FORWARD kernel option has been removed. Its 1670 functionality now turned on by default. 1671 167220121023: 1673 The ZERO_COPY_SOCKET kernel option has been removed and 1674 split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP. 1675 NB: SOCKET_SEND_COW uses the VM page based copy-on-write 1676 mechanism which is not safe and may result in kernel crashes. 1677 NB: The SOCKET_RECV_PFLIP mechanism is useless as no current 1678 driver supports disposeable external page sized mbuf storage. 1679 Proper replacements for both zero-copy mechanisms are under 1680 consideration and will eventually lead to complete removal 1681 of the two kernel options. 1682 168320121023: 1684 The IPv4 network stack has been converted to network byte 1685 order. The following modules need to be recompiled together 1686 with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4), 1687 pf(4), ipfw(4), ng_ipfw(4), stf(4). 1688 168920121022: 1690 Support for non-MPSAFE filesystems was removed from VFS. The 1691 VFS_VERSION was bumped, all filesystem modules shall be 1692 recompiled. 1693 169420121018: 1695 All the non-MPSAFE filesystems have been disconnected from 1696 the build. The full list includes: codafs, hpfs, ntfs, nwfs, 1697 portalfs, smbfs, xfs. 1698 169920121016: 1700 The interface cloning API and ABI has changed. The following 1701 modules need to be recompiled together with kernel: 1702 ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4), 1703 vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4), 1704 faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4). 1705 170620121015: 1707 The sdhci driver was split in two parts: sdhci (generic SD Host 1708 Controller logic) and sdhci_pci (actual hardware driver). 1709 No kernel config modifications are required, but if you 1710 load sdhc as a module you must switch to sdhci_pci instead. 1711 171220121014: 1713 Import the FUSE kernel and userland support into base system. 1714 171520121013: 1716 The GNU sort(1) program has been removed since the BSD-licensed 1717 sort(1) has been the default for quite some time and no serious 1718 problems have been reported. The corresponding WITH_GNU_SORT 1719 knob has also gone. 1720 172120121006: 1722 The pfil(9) API/ABI for AF_INET family has been changed. Packet 1723 filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled 1724 with new kernel. 1725 172620121001: 1727 The net80211(4) ABI has been changed to allow for improved driver 1728 PS-POLL and power-save support. All wireless drivers need to be 1729 recompiled to work with the new kernel. 1730 173120120913: 1732 The random(4) support for the VIA hardware random number 1733 generator (`PADLOCK') is no longer enabled unconditionally. 1734 Add the padlock_rng device in the custom kernel config if 1735 needed. The GENERIC kernels on i386 and amd64 do include the 1736 device, so the change only affects the custom kernel 1737 configurations. 1738 173920120908: 1740 The pf(4) packet filter ABI has been changed. pfctl(8) and 1741 snmp_pf module need to be recompiled to work with new kernel. 1742 174320120828: 1744 A new ZFS feature flag "com.delphix:empty_bpobj" has been merged 1745 to -HEAD. Pools that have empty_bpobj in active state can not be 1746 imported read-write with ZFS implementations that do not support 1747 this feature. For more information read the zpool-features(5) 1748 manual page. 1749 175020120727: 1751 The sparc64 ZFS loader has been changed to no longer try to auto- 1752 detect ZFS providers based on diskN aliases but now requires these 1753 to be explicitly listed in the OFW boot-device environment variable. 1754 175520120712: 1756 The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring 1757 libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are 1758 configuration changes. Make sure to merge /etc/ssl/openssl.cnf. 1759 176020120712: 1761 The following sysctls and tunables have been renamed for consistency 1762 with other variables: 1763 kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered 1764 kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered 1765 176620120628: 1767 The sort utility has been replaced with BSD sort. For now, GNU sort 1768 is also available as "gnusort" or the default can be set back to 1769 GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be 1770 installed as "bsdsort". 1771 177220120611: 1773 A new version of ZFS (pool version 5000) has been merged to -HEAD. 1774 Starting with this version the old system of ZFS pool versioning 1775 is superseded by "feature flags". This concept enables forward 1776 compatibility against certain future changes in functionality of ZFS 1777 pools. The first read-only compatible "feature flag" for ZFS pools 1778 is named "com.delphix:async_destroy". For more information 1779 read the new zpool-features(5) manual page. 1780 Please refer to the "ZFS notes" section of this file for information 1781 on upgrading boot ZFS pools. 1782 178320120417: 1784 The malloc(3) implementation embedded in libc now uses sources imported 1785 as contrib/jemalloc. The most disruptive API change is to 1786 /etc/malloc.conf. If your system has an old-style /etc/malloc.conf, 1787 delete it prior to installworld, and optionally re-create it using the 1788 new format after rebooting. See malloc.conf(5) for details 1789 (specifically the TUNING section and the "opt.*" entries in the MALLCTL 1790 NAMESPACE section). 1791 179220120328: 1793 Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb 1794 is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is 1795 now spelled mips. This is to aid compatibility with third-party 1796 software that expects this naming scheme in uname(3). Little-endian 1797 settings are unchanged. If you are updating a big-endian mips64 machine 1798 from before this change, you may need to set MACHINE_ARCH=mips64 in 1799 your environment before the new build system will recognize your machine. 1800 180120120306: 1802 Disable by default the option VFS_ALLOW_NONMPSAFE for all supported 1803 platforms. 1804 180520120229: 1806 Now unix domain sockets behave "as expected" on nullfs(5). Previously 1807 nullfs(5) did not pass through all behaviours to the underlying layer, 1808 as a result if we bound to a socket on the lower layer we could connect 1809 only to the lower path; if we bound to the upper layer we could connect 1810 only to the upper path. The new behavior is one can connect to both the 1811 lower and the upper paths regardless what layer path one binds to. 1812 181320120211: 1814 The getifaddrs upgrade path broken with 20111215 has been restored. 1815 If you have upgraded in between 20111215 and 20120209 you need to 1816 recompile libc again with your kernel. You still need to recompile 1817 world to be able to configure CARP but this restriction already 1818 comes from 20111215. 1819 182020120114: 1821 The set_rcvar() function has been removed from /etc/rc.subr. All 1822 base and ports rc.d scripts have been updated, so if you have a 1823 port installed with a script in /usr/local/etc/rc.d you can either 1824 hand-edit the rcvar= line, or reinstall the port. 1825 1826 An easy way to handle the mass-update of /etc/rc.d: 1827 rm /etc/rc.d/* && mergemaster -i 1828 182920120109: 1830 panic(9) now stops other CPUs in the SMP systems, disables interrupts 1831 on the current CPU and prevents other threads from running. 1832 This behavior can be reverted using the kern.stop_scheduler_on_panic 1833 tunable/sysctl. 1834 The new behavior can be incompatible with kern.sync_on_panic. 1835 183620111215: 1837 The carp(4) facility has been changed significantly. Configuration 1838 of the CARP protocol via ifconfig(8) has changed, as well as format 1839 of CARP events submitted to devd(8) has changed. See manual pages 1840 for more information. The arpbalance feature of carp(4) is currently 1841 not supported anymore. 1842 1843 Size of struct in_aliasreq, struct in6_aliasreq has changed. User 1844 utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), 1845 need to be recompiled. 1846 184720111122: 1848 The acpi_wmi(4) status device /dev/wmistat has been renamed to 1849 /dev/wmistat0. 1850 185120111108: 1852 The option VFS_ALLOW_NONMPSAFE option has been added in order to 1853 explicitely support non-MPSAFE filesystems. 1854 It is on by default for all supported platform at this present 1855 time. 1856 185720111101: 1858 The broken amd(4) driver has been replaced with esp(4) in the amd64, 1859 i386 and pc98 GENERIC kernel configuration files. 1860 186120110930: 1862 sysinstall has been removed 1863 186420110923: 1865 The stable/9 branch created in subversion. This corresponds to the 1866 RELENG_9 branch in CVS. 1867 1868COMMON ITEMS: 1869 1870 General Notes 1871 ------------- 1872 Avoid using make -j when upgrading. While generally safe, there are 1873 sometimes problems using -j to upgrade. If your upgrade fails with 1874 -j, please try again without -j. From time to time in the past there 1875 have been problems using -j with buildworld and/or installworld. This 1876 is especially true when upgrading between "distant" versions (eg one 1877 that cross a major release boundary or several minor releases, or when 1878 several months have passed on the -current branch). 1879 1880 Sometimes, obscure build problems are the result of environment 1881 poisoning. This can happen because the make utility reads its 1882 environment when searching for values for global variables. To run 1883 your build attempts in an "environmental clean room", prefix all make 1884 commands with 'env -i '. See the env(1) manual page for more details. 1885 1886 When upgrading from one major version to another it is generally best to 1887 upgrade to the latest code in the currently installed branch first, then 1888 do an upgrade to the new branch. This is the best-tested upgrade path, 1889 and has the highest probability of being successful. Please try this 1890 approach if you encounter problems with a major version upgrade. Since 1891 the stable 4.x branch point, one has generally been able to upgrade from 1892 anywhere in the most recent stable branch to head / current (or even the 1893 last couple of stable branches). See the top of this file when there's 1894 an exception. 1895 1896 When upgrading a live system, having a root shell around before 1897 installing anything can help undo problems. Not having a root shell 1898 around can lead to problems if pam has changed too much from your 1899 starting point to allow continued authentication after the upgrade. 1900 1901 This file should be read as a log of events. When a later event changes 1902 information of a prior event, the prior event should not be deleted. 1903 Instead, a pointer to the entry with the new information should be 1904 placed in the old entry. Readers of this file should also sanity check 1905 older entries before relying on them blindly. Authors of new entries 1906 should write them with this in mind. 1907 1908 ZFS notes 1909 --------- 1910 When upgrading the boot ZFS pool to a new version, always follow 1911 these two steps: 1912 1913 1.) recompile and reinstall the ZFS boot loader and boot block 1914 (this is part of "make buildworld" and "make installworld") 1915 1916 2.) update the ZFS boot block on your boot drive 1917 1918 The following example updates the ZFS boot block on the first 1919 partition (freebsd-boot) of a GPT partitioned drive ada0: 1920 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 1921 1922 Non-boot pools do not need these updates. 1923 1924 To build a kernel 1925 ----------------- 1926 If you are updating from a prior version of FreeBSD (even one just 1927 a few days old), you should follow this procedure. It is the most 1928 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1929 1930 make kernel-toolchain 1931 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1932 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1933 1934 To test a kernel once 1935 --------------------- 1936 If you just want to boot a kernel once (because you are not sure 1937 if it works, or if you want to boot a known bad kernel to provide 1938 debugging information) run 1939 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1940 nextboot -k testkernel 1941 1942 To rebuild everything and install it on the current system. 1943 ----------------------------------------------------------- 1944 # Note: sometimes if you are running current you gotta do more than 1945 # is listed here if you are upgrading from a really old current. 1946 1947 <make sure you have good level 0 dumps> 1948 make buildworld 1949 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1950 make installkernel KERNCONF=YOUR_KERNEL_HERE 1951 [1] 1952 <reboot in single user> [3] 1953 mergemaster -Fp [5] 1954 make installworld 1955 mergemaster -Fi [4] 1956 make delete-old [6] 1957 <reboot> 1958 1959 To cross-install current onto a separate partition 1960 -------------------------------------------------- 1961 # In this approach we use a separate partition to hold 1962 # current's root, 'usr', and 'var' directories. A partition 1963 # holding "/", "/usr" and "/var" should be about 2GB in 1964 # size. 1965 1966 <make sure you have good level 0 dumps> 1967 <boot into -stable> 1968 make buildworld 1969 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1970 <maybe newfs current's root partition> 1971 <mount current's root partition on directory ${CURRENT_ROOT}> 1972 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 1973 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1974 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1975 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1976 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1977 <reboot into current> 1978 <do a "native" rebuild/install as described in the previous section> 1979 <maybe install compatibility libraries from ports/misc/compat*> 1980 <reboot> 1981 1982 1983 To upgrade in-place from stable to current 1984 ---------------------------------------------- 1985 <make sure you have good level 0 dumps> 1986 make buildworld [9] 1987 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1988 [1] 1989 <reboot in single user> [3] 1990 mergemaster -Fp [5] 1991 make installworld 1992 mergemaster -Fi [4] 1993 make delete-old [6] 1994 <reboot> 1995 1996 Make sure that you've read the UPDATING file to understand the 1997 tweaks to various things you need. At this point in the life 1998 cycle of current, things change often and you are on your own 1999 to cope. The defaults can also change, so please read ALL of 2000 the UPDATING entries. 2001 2002 Also, if you are tracking -current, you must be subscribed to 2003 freebsd-current@freebsd.org. Make sure that before you update 2004 your sources that you have read and understood all the recent 2005 messages there. If in doubt, please track -stable which has 2006 much fewer pitfalls. 2007 2008 [1] If you have third party modules, such as vmware, you 2009 should disable them at this point so they don't crash your 2010 system on reboot. 2011 2012 [3] From the bootblocks, boot -s, and then do 2013 fsck -p 2014 mount -u / 2015 mount -a 2016 cd src 2017 adjkerntz -i # if CMOS is wall time 2018 Also, when doing a major release upgrade, it is required that 2019 you boot into single user mode to do the installworld. 2020 2021 [4] Note: This step is non-optional. Failure to do this step 2022 can result in a significant reduction in the functionality of the 2023 system. Attempting to do it by hand is not recommended and those 2024 that pursue this avenue should read this file carefully, as well 2025 as the archives of freebsd-current and freebsd-hackers mailing lists 2026 for potential gotchas. The -U option is also useful to consider. 2027 See mergemaster(8) for more information. 2028 2029 [5] Usually this step is a no-op. However, from time to time 2030 you may need to do this if you get unknown user in the following 2031 step. It never hurts to do it all the time. You may need to 2032 install a new mergemaster (cd src/usr.sbin/mergemaster && make 2033 install) after the buildworld before this step if you last updated 2034 from current before 20130425 or from -stable before 20130430. 2035 2036 [6] This only deletes old files and directories. Old libraries 2037 can be deleted by "make delete-old-libs", but you have to make 2038 sure that no program is using those libraries anymore. 2039 2040 [8] In order to have a kernel that can run the 4.x binaries needed to 2041 do an installworld, you must include the COMPAT_FREEBSD4 option in 2042 your kernel. Failure to do so may leave you with a system that is 2043 hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 2044 required to run the 5.x binaries on more recent kernels. And so on 2045 for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 2046 2047 Make sure that you merge any new devices from GENERIC since the 2048 last time you updated your kernel config file. 2049 2050 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2051 "?=" instead of the "=" assignment operator, so that buildworld can 2052 override the CPUTYPE if it needs to. 2053 2054 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2055 not on the command line, or in /etc/make.conf. buildworld will 2056 warn if it is improperly defined. 2057FORMAT: 2058 2059This file contains a list, in reverse chronological order, of major 2060breakages in tracking -current. It is not guaranteed to be a complete 2061list of such breakages, and only contains entries since September 23, 2011. 2062If you need to see UPDATING entries from before that date, you will need 2063to fetch an UPDATING file from an older FreeBSD release. 2064 2065Copyright information: 2066 2067Copyright 1998-2009 M. Warner Losh. All Rights Reserved. 2068 2069Redistribution, publication, translation and use, with or without 2070modification, in full or in part, in any form or format of this 2071document are permitted without further permission from the author. 2072 2073THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2074IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2075WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2076DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2077INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2078(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2079SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2080HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2081STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2082IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2083POSSIBILITY OF SUCH DAMAGE. 2084 2085Contact Warner Losh if you have any questions about your use of 2086this document. 2087 2088$FreeBSD$ 2089