1 Updating Information for FreeBSD current users. 2 3This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. 4See end of file for further details. For commonly done items, please see the 5COMMON ITEMS: section later in the file. These instructions assume that you 6basically know what you are doing. If not, then please consult the FreeBSD 7handbook: 8 9 https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html 10 11Items affecting the ports and packages system can be found in 12/usr/ports/UPDATING. Please read that file before running portupgrade. 13 14NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW: 15 FreeBSD 13.x has many debugging features turned on, in both the kernel 16 and userland. These features attempt to detect incorrect use of 17 system primitives, and encourage loud failure through extra sanity 18 checking and fail stop semantics. They also substantially impact 19 system performance. If you want to do performance measurement, 20 benchmarking, and optimization, you'll want to turn them off. This 21 includes various WITNESS- related kernel options, INVARIANTS, malloc 22 debugging flags in userland, and various verbose features in the 23 kernel. Many developers choose to disable these features on build 24 machines to maximize performance. (To completely disable malloc 25 debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely 26 disable the most expensive debugging functionality run 27 "ln -s 'abort:false,junk:false' /etc/malloc.conf".) 28 2920191222: 30 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 31 been upgraded to 9.0.1. Please see the 20141231 entry below for 32 information about prerequisites and upgrading, if you are not already 33 using clang 3.5.0 or higher. 34 3520191212: 36 r355677 has modified the internal interface used between the 37 NFS modules in the kernel. As such, they must all be upgraded 38 simultaneously. I will do a version bump for this. 39 4020191205: 41 The root certificates of the Mozilla CA Certificate Store have been 42 imported into the base system and can be managed with the certctl(8) 43 utility. If you have installed the security/ca_root_nss port or package 44 with the ETCSYMLINK option (the default), be advised that there may be 45 differences between those included in the port and those included in 46 base due to differences in nss branch used as well as general update 47 frequency. Note also that certctl(8) cannot manage certs in the 48 format used by the security/ca_root_nss port. 49 5020191120: 51 The amd(8) automount daemon has been disabled by default, and will be 52 removed in the future. As of FreeBSD 10.1 the autofs(5) is available 53 for automounting. 54 5520191107: 56 The nctgpio and wbwd drivers have been moved to the superio bus. 57 If you have one of these drivers in a kernel configuration, then 58 you should add device superio to it. If you use one of these drivers 59 as a module and you compile a custom set of modules, then you should 60 add superio to the set. 61 6220191021: 63 KPIs for network drivers to access interface addresses have changed. 64 Users need to recompile NIC driver modules together with kernel. 65 6620191021: 67 The net.link.tap.user_open sysctl no longer prevents user opening of 68 already created /dev/tapNN devices. Access is still controlled by 69 node permissions, just like tun devices. The net.link.tap.user_open 70 sysctl is now used only to allow users to perform devfs cloning of 71 tap devices, and the subsequent open may not succeed if the user is not 72 in the appropriate group. This sysctl may be deprecated/removed 73 completely in the future. 74 7520191009: 76 mips, powerpc, and sparc64 are no longer built as part of 77 universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If 78 not defined, mips, powerpc, and sparc64 builds will look for 79 the xtoolchain binaries and if installed use them for universe 80 builds. As llvm 9.0 becomes vetted for these architectures, they 81 will be removed from the list. 82 8320191009: 84 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 85 been upgraded to 9.0.0. Please see the 20141231 entry below for 86 information about prerequisites and upgrading, if you are not already 87 using clang 3.5.0 or higher. 88 8920191003: 90 The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from 91 GENERIC. They are available as modules and can be loaded by adding 92 to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", 93 hptnr_load="YES", or hptrr_load="YES", respectively. 94 9520190913: 96 ntpd no longer by default locks its pages in memory, allowing them 97 to be paged out by the kernel. Use rlimit memlock to restore 98 historic BSD behaviour. For example, add "rlimit memlock 32" 99 to ntp.conf to lock up to 32 MB of ntpd address space in memory. 100 10120190823: 102 Several of ping6's options have been renamed for better consistency 103 with ping. If you use any of -ARWXaghmrtwx, you must update your 104 scripts. See ping6(8) for details. 105 10620190727: 107 The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls 108 and the "-o sync_unmount" and "-o init_backgrounded" mount options have 109 been removed from mount_fusefs(8). You can safely remove them from 110 your scripts, because they had no effect. 111 112 The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, 113 vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, 114 vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate 115 sysctls have been removed. If you felt the need to set any of them to 116 a non-default value, please tell asomers@FreeBSD.org why. 117 11820190713: 119 Default permissions on the /var/account/acct file (and copies of it 120 rotated by periodic daily scripts) are changed from 0644 to 0640 121 because the file contains sensitive information that should not be 122 world-readable. If the /var/account directory must be created by 123 rc.d/accounting, the mode used is now 0750. Admins who use the 124 accounting feature are encouraged to change the mode of an existing 125 /var/account directory to 0750 or 0700. 126 12720190620: 128 Entropy collection and the /dev/random device are no longer optional 129 components. The "device random" option has been removed. 130 Implementations of distilling algorithms can still be made loadable 131 with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). 132 13320190612: 134 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 135 been upgraded to 8.0.1. Please see the 20141231 entry below for 136 information about prerequisites and upgrading, if you are not already 137 using clang 3.5.0 or higher. 138 13920190608: 140 A fix was applied to i386 kernel modules to avoid panics with 141 dpcpu or vnet. Users need to recompile i386 kernel modules 142 having pcpu or vnet sections or they will refuse to load. 143 14420190513: 145 User-wired pages now have their own counter, 146 vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed 147 to vm.max_user_wired and changed from an unsigned int to an unsigned 148 long. bhyve VMs wired with the -S are now subject to the user 149 wiring limit; the vm.max_user_wired sysctl may need to be tuned to 150 avoid running into the limit. 151 15220190507: 153 The IPSEC option has been removed from GENERIC. Users requiring 154 ipsec(4) must now load the ipsec(4) kernel module. 155 15620190507: 157 The tap(4) driver has been folded into tun(4), and the module has been 158 renamed to tuntap. You should update any kld_list="if_tap" or 159 kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or 160 if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap 161 module instead, and "device tap" or "device tun" entries in kernel 162 config files to select the tuntap device instead. 163 16420190418: 165 The following knobs have been added related to tradeoffs between 166 safe use of the random device and availability in the absence of 167 entropy: 168 169 kern.random.initial_seeding.bypass_before_seeding: tunable; set 170 non-zero to bypass the random device prior to seeding, or zero to 171 block random requests until the random device is initially seeded. 172 For now, set to 1 (unsafe) by default to restore pre-r346250 boot 173 availability properties. 174 175 kern.random.initial_seeding.read_random_bypassed_before_seeding: 176 read-only diagnostic sysctl that is set when bypass is enabled and 177 read_random(9) is bypassed, to enable programmatic handling of this 178 initial condition, if desired. 179 180 kern.random.initial_seeding.arc4random_bypassed_before_seeding: 181 Similar to the above, but for for arc4random(9) initial seeding. 182 183 kern.random.initial_seeding.disable_bypass_warnings: tunable; set 184 non-zero to disable warnings in dmesg when the same conditions are 185 met as for the diagnostic sysctls above. Defaults to zero, i.e., 186 produce warnings in dmesg when the conditions are met. 187 18820190416: 189 The loadable random module KPI has changed; the random_infra_init() 190 routine now requires a 3rd function pointer for a bool (*)(void) 191 method that returns true if the random device is seeded (and 192 therefore unblocked). 193 19420190404: 195 r345895 reverts r320698. This implies that an nfsuserd(8) daemon 196 built from head sources between r320757 (July 6, 2017) and 197 r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" 198 is added to the command line. 199 nfsuserd daemons built from head sources that are post-r338192 are 200 not affected and should continue to work. 201 20220190320: 203 The fuse(4) module has been renamed to fusefs(4) for consistency with 204 other filesystems. You should update any kld_load="fuse" entries in 205 /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and 206 "options FUSE" entries in kernel config files. 207 20820190304: 209 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 210 8.0.0. Please see the 20141231 entry below for information about 211 prerequisites and upgrading, if you are not already using clang 3.5.0 212 or higher. 213 21420190226: 215 geom_uzip(4) depends on the new module xz. If geom_uzip is statically 216 compiled into your custom kernel, add 'device xz' statement to the 217 kernel config. 218 21920190219: 220 drm and drm2 have been removed from the tree. Please see 221 https://wiki.freebsd.org/Graphics for the latest information on 222 migrating to the drm ports. 223 22420190131: 225 Iflib is no longer unconditionally compiled into the kernel. Drivers 226 using iflib and statically compiled into the kernel, now require 227 the 'device iflib' config option. For the same drivers loaded as 228 modules on kernels not having 'device iflib', the iflib.ko module 229 is loaded automatically. 230 23120190125: 232 The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration 233 options no longer exist since r343219 and r343427 respectively; 234 nothing uses them, so they should be just removed from custom 235 kernel config files. 236 23720181230: 238 r342635 changes the way efibootmgr(8) works by requiring users to add 239 the -b (bootnum) parameter for commands where the bootnum was previously 240 specified with each option. For example 'efibootmgr -B 0001' is now 241 'efibootmgr -B -b 0001'. 242 24320181220: 244 r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport 245 in the same as it is applied to NFSv2 and 3. This implies that NFSv4 246 servers that have vfs.nfsd.nfs_privport set will only allow mounts 247 from clients using a reserved port#. Since both the FreeBSD and Linux 248 NFSv4 clients use reserved port#s by default, this should not affect 249 most NFSv4 mounts. 250 25120181219: 252 The XLP config has been removed. We can't support 64-bit atomics in this 253 kernel because it is running in 32-bit mode. XLP users must transition 254 to running a 64-bit kernel (XLP64 or XLPN32). 255 256 The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is 257 the preferred emulator today and we don't need two different ones. 258 259 The old sibyte / swarm / Broadcom BCM1250 support has been 260 removed from the mips port. 261 26220181211: 263 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 264 7.0.1. Please see the 20141231 entry below for information about 265 prerequisites and upgrading, if you are not already using clang 3.5.0 266 or higher. 267 26820181211: 269 Remove the timed and netdate programs from the base tree. Setting 270 the time with these daemons has been obsolete for over a decade. 271 27220181126: 273 On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld 274 linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as 275 it produces broken binaries when ifuncs are in use. Users needing 276 GNU ld should install the binutils port or package. 277 27820181123: 279 The BSD crtbegin and crtend code has been enabled by default. It has 280 had extensive testing on amd64, arm64, and i386. It can be disabled 281 by building a world with -DWITHOUT_BSD_CRTBEGIN. 282 28320181115: 284 The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) 285 has been converted to a port (misc/ctm) and will be removed from 286 FreeBSD-13. It is available as a package (ctm) for all supported 287 FreeBSD versions. 288 28920181110: 290 The default newsyslog.conf(5) file has been changed to only include 291 files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if 292 the filenames end in '.conf' and do not begin with a '.'. 293 294 You should check the configuration files in these two directories match 295 this naming convention. You can verify which configuration files are 296 being included using the command: 297 $ newsyslog -Nrv 298 29920181015: 300 Ports for the DRM modules have been simplified. Now, amd64 users should 301 just install the drm-kmod port. All others should install 302 drm-legacy-kmod. 303 304 Graphics hardware that's newer than about 2010 usually works with 305 drm-kmod. For hardware older than 2013, however, some users will need 306 to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older 307 than 2008 usually only works in drm-legacy-kmod. The graphics team can 308 only commit to hardware made since 2013 due to the complexity of the 309 market and difficulty to test all the older cards effectively. If you 310 have hardware supported by drm-kmod, you are strongly encouraged to use 311 that as you will get better support. 312 313 Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined 314 elsewhere, the drm and drm2 modules will be eliminated from the src base 315 soon (with a limited exception for arm). Please update to the package 316 asap and report any issues to x11@freebsd.org. 317 318 Generally, anybody using the drm*-kmod packages should add 319 WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty 320 cross-threading surprises, especially with automatic driver 321 loading from X11 startup. These will become the defaults in 13-current 322 shortly. 323 32420181012: 325 The ixlv(4) driver has been renamed to iavf(4). As a consequence, 326 custom kernel and module loading configuration files must be updated 327 accordingly. Moreover, interfaces previous presented as ixlvN to the 328 system are now exposed as iavfN and network configuration files must 329 be adjusted as necessary. 330 33120181009: 332 OpenSSL has been updated to version 1.1.1. This update included 333 additional various API changes throughout the base system. It is 334 important to rebuild third-party software after upgrading. The value 335 of __FreeBSD_version has been bumped accordingly. 336 33720181006: 338 The legacy DRM modules and drivers have now been added to the loader's 339 module blacklist, in favor of loading them with kld_list in rc.conf(5). 340 The module blacklist may be overridden with the loader.conf(5) 341 'module_blacklist' variable, but loading them via rc.conf(5) is strongly 342 encouraged. 343 34420181002: 345 The cam(4) based nda(4) driver will be used over nvd(4) by default on 346 powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or 347 loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing 348 driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the 349 nda device name. 350 35120180913: 352 Reproducible build mode is now on by default, in preparation for 353 FreeBSD 12.0. This eliminates build metadata such as the user, 354 host, and time from the kernel (and uname), unless the working tree 355 corresponds to a modified checkout from a version control system. 356 The previous behavior can be obtained by setting the /etc/src.conf 357 knob WITHOUT_REPRODUCIBLE_BUILD. 358 35920180826: 360 The Yarrow CSPRNG has been removed from the kernel as it has not been 361 supported by its designers since at least 2003. Fortuna has been the 362 default since FreeBSD-11. 363 36420180822: 365 devctl freeze/thaw have gone into the tree, the rc scripts have been 366 updated to use them and devmatch has been changed. You should update 367 kernel, userland and rc scripts all at the same time. 368 36920180818: 370 The default interpreter has been switched from 4th to Lua. 371 LOADER_DEFAULT_INTERP, documented in build(7), will override the default 372 interpreter. If you have custom FORTH code you will need to set 373 LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in 374 src.conf for the build. This will create default hard links between 375 loader and loader_4th instead of loader and loader_lua, the new default. 376 If you are using UEFI it will create the proper hard link to loader.efi. 377 378 bhyve uses userboot.so. It remains 4th-only until some issues are solved 379 regarding coexisting with multiple versions of FreeBSD are resolved. 380 38120180815: 382 ls(1) now respects the COLORTERM environment variable used in other 383 systems and software to indicate that a colored terminal is both 384 supported and desired. If ls(1) is suddenly emitting colors, they may 385 be disabled again by either removing the unwanted COLORTERM from your 386 environment, or using `ls --color=never`. The ls(1) specific CLICOLOR 387 may not be observed in a future release. 388 38920180808: 390 The default pager for most commands has been changed to "less". To 391 restore the old behavior, set PAGER="more" and MANPAGER="more -s" in 392 your environment. 393 39420180731: 395 The jedec_ts(4) driver has been removed. A superset of its functionality 396 is available in the jedec_dimm(4) driver, and the manpage for that 397 driver includes migration instructions. If you have "device jedec_ts" 398 in your kernel configuration file, it must be removed. 399 40020180730: 401 amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. 402 This should have no effect if the kernel is booted via BIOS/legacy boot. 403 EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system 404 has a buggy firmware that prevents a successful boot due to use of 405 runtime services. 406 40720180727: 408 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 409 support has been removed from the tree. These ports were 410 obsolete and/or known to be broken for many years. 411 41220180723: 413 loader.efi has been augmented to participate more fully in the 414 UEFI boot manager protocol. loader.efi will now look at the 415 BootXXXX environment variable to determine if a specific kernel 416 or root partition was specified. XXXX is derived from BootCurrent. 417 efibootmgr(8) manages these standard UEFI variables. 418 41920180720: 420 zfsloader's functionality has now been folded into loader. 421 zfsloader is no longer necessary once you've updated your 422 boot blocks. For a transition period, we will install a 423 hardlink for zfsloader to loader to allow a smooth transition 424 until the boot blocks can be updated (hard link because old 425 zfs boot blocks don't understand symlinks). 426 42720180719: 428 ARM64 now have efifb support, if you want to have serial console 429 on your arm64 board when an screen is connected and the bootloader 430 setup a frame buffer for us to use, just add : 431 boot_serial=YES 432 boot_multicons=YES 433 in /boot/loader.conf 434 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 435 an screen connected as the firmware will setup a frame buffer are that 436 u-boot will expose as an EFI frame buffer. 437 43820180719: 439 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 440 or take steps to update /etc/passwd before doing installworld on 441 existing systems. Do not skip the "mergemaster -Fp" step before 442 installworld, as described in the update procedures near the bottom 443 of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 444 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 445 the ntp config file contain options that change file/dir locations. 446 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 447 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 448 taking steps to ensure that all required files/dirs are accessible 449 by the ntpd user. 450 45120180717: 452 Big endian arm support has been removed. 453 45420180711: 455 The static environment setup in kernel configs is no longer mutually 456 exclusive with the loader(8) environment by default. In order to 457 restore the previous default behavior of disabling the loader(8) 458 environment if a static environment is present, you must specify 459 loader_env.disabled=1 in the static environment. 460 46120180705: 462 The ABI of syscalls used by management tools like sockstat and 463 netstat has been broken to allow 32-bit binaries to work on 464 64-bit kernels without modification. These programs will need 465 to match the kernel in order to function. External programs may 466 require minor modifications to accommodate a change of type in 467 structures from pointers to 64-bit virtual addresses. 468 46920180702: 470 On i386 and amd64 atomics are now inlined. Out of tree modules using 471 atomics will need to be rebuilt. 472 47320180701: 474 The '%I' format in the kern.corefile sysctl limits the number of 475 core files that a process can generate to the number stored in the 476 debug.ncores sysctl. The '%I' format is replaced by the single digit 477 index. Previously, if all indexes were taken the kernel would overwrite 478 only a core file with the highest index in a filename. 479 Currently the system will create a new core file if there is a free 480 index or if all slots are taken it will overwrite the oldest one. 481 48220180630: 483 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 484 6.0.1. Please see the 20141231 entry below for information about 485 prerequisites and upgrading, if you are not already using clang 3.5.0 486 or higher. 487 48820180628: 489 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 490 needed to be changed to work with it. This change was made with r335763 491 and requires a mergemaster / etcupdate / etc to update the installed 492 file. 493 49420180612: 495 r334930 changed the interface between the NFS modules, so they all 496 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 497 49820180530: 499 As of r334391 lld is the default amd64 system linker; it is installed 500 as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no 501 longer necessary. 502 50320180530: 504 The kernel / userland interface for devinfo changed, so you'll 505 need a new kernel and userland as a pair for it to work (rebuilding 506 lib/libdevinfo is all that's required). devinfo and devmatch will 507 not work, but everything else will when there's a mismatch. 508 50920180523: 510 The on-disk format for hwpmc callchain records has changed to include 511 threadid corresponding to a given record. This changes the field offsets 512 and thus requires that libpmcstat be rebuilt before using a kernel 513 later than r334108. 514 51520180517: 516 The vxge(4) driver has been removed. This driver was introduced into 517 HEAD one week before the Exar left the Ethernet market and is not 518 known to be used. If you have device vxge in your kernel config file 519 it must be removed. 520 52120180510: 522 The amd64 kernel now requires a ld that supports ifunc to produce a 523 working kernel, either lld or a newer binutils. lld is built by default 524 on amd64, and the 'buildkernel' target uses it automatically. However, 525 it is not the default linker, so building the kernel the traditional 526 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 527 binutils port/package). lld will soon be default, and this requirement 528 will go away. 529 530 NOTE: As of r334391 lld is the default system linker on amd64, and no 531 workaround is necessary. 532 53320180508: 534 The nxge(4) driver has been removed. This driver was for PCI-X 10g 535 cards made by s2io/Neterion. The company was acquired by Exar and 536 no longer sells or supports Ethernet products. If you have device 537 nxge in your kernel config file it must be removed. 538 53920180504: 540 The tz database (tzdb) has been updated to 2018e. This version more 541 correctly models time stamps in time zones with negative DST such as 542 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 543 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 544 time zone abbreviations and the tm_isdst flag. 545 54620180502: 547 The ixgb(4) driver has been removed. This driver was for an early and 548 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 549 quickly shifted to the long lived ixgbe family. If you have device 550 ixgb in your kernel config file it must be removed. 551 55220180501: 553 The lmc(4) driver has been removed. This was a WAN interface 554 card that was already reportedly rare in 2003, and had an ambiguous 555 license. If you have device lmc in your kernel config file it must 556 be removed. 557 55820180413: 559 Support for Arcnet networks has been removed. If you have device 560 arcnet or device cm in your kernel config file they must be 561 removed. 562 56320180411: 564 Support for FDDI networks has been removed. If you have device 565 fddi or device fpa in your kernel config file they must be 566 removed. 567 56820180406: 569 In addition to supporting RFC 3164 formatted messages, the 570 syslogd(8) service is now capable of parsing RFC 5424 formatted 571 log messages. The main benefit of using RFC 5424 is that clients 572 may now send log messages with timestamps containing year numbers, 573 microseconds and time zone offsets. 574 575 Similarly, the syslog(3) C library function has been altered to 576 send RFC 5424 formatted messages to the local system logging 577 daemon. On systems using syslogd(8), this change should have no 578 negative impact, as long as syslogd(8) and the C library are 579 updated at the same time. On systems using a different system 580 logging daemon, it may be necessary to make configuration 581 adjustments, depending on the software used. 582 583 When using syslog-ng, add the 'syslog-protocol' flag to local 584 input sources to enable parsing of RFC 5424 formatted messages: 585 586 source src { 587 unix-dgram("/var/run/log" flags(syslog-protocol)); 588 } 589 590 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 591 of the 'imuxsock' module to let messages be processed by the 592 regular RFC 3164/5424 parsing pipeline: 593 594 module(load="imuxsock" SysSock.UseSpecialParser="off") 595 596 Do note that these changes only affect communication between local 597 applications and syslogd(8). The format that syslogd(8) uses to 598 store messages on disk or forward messages to other systems 599 remains unchanged. syslogd(8) still uses RFC 3164 for these 600 purposes. Options to customize this behaviour will be added in the 601 future. Utilities that process log files stored in /var/log are 602 thus expected to continue to function as before. 603 604 __FreeBSD_version has been incremented to 1200061 to denote this 605 change. 606 60720180328: 608 Support for token ring networks has been removed. If you 609 have "device token" in your kernel config you should remove 610 it. No device drivers supported token ring. 611 61220180323: 613 makefs was modified to be able to tag ISO9660 El Torito boot catalog 614 entries as EFI instead of overloading the i386 tag as done previously. 615 The amd64 mkisoimages.sh script used to build amd64 ISO images for 616 release was updated to use this. This may mean that makefs must be 617 updated before "make cdrom" can be run in the release directory. This 618 should be as simple as: 619 620 $ cd $SRCDIR/usr.sbin/makefs 621 $ make depend all install 622 62320180212: 624 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 625 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 626 Co-existence for the transition period will come shortly. Booting is a 627 complex environment and test coverage for Lua-enabled loaders has been 628 thin, so it would be prudent to assume it might not work and make 629 provisions for backup boot methods. 630 63120180211: 632 devmatch functionality has been turned on in devd. It will automatically 633 load drivers for unattached devices. This may cause unexpected drivers 634 to be loaded. Please report any problems to current@ and 635 imp@freebsd.org. 636 63720180114: 638 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 639 6.0.0. Please see the 20141231 entry below for information about 640 prerequisites and upgrading, if you are not already using clang 3.5.0 641 or higher. 642 64320180110: 644 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 645 This means it is used to link the kernel and userland libraries and 646 executables, but is not yet installed as /usr/bin/ld by default. 647 648 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 649 WITHOUT_LLD_BOOTSTRAP=yes 650 65120180110: 652 On i386, pmtimer has been removed. Its functionality has been folded 653 into apm. It was a no-op on ACPI in current for a while now (but was 654 still needed on i386 in FreeBSD 11 and earlier). Users may need to 655 remove it from kernel config files. 656 65720180104: 658 The use of RSS hash from the network card aka flowid has been 659 disabled by default for lagg(4) as it's currently incompatible with 660 the lacp and loadbalance protocols. 661 662 This can be re-enabled by setting the following in loader.conf: 663 net.link.lagg.default_use_flowid="1" 664 66520180102: 666 The SW_WATCHDOG option is no longer necessary to enable the 667 hardclock-based software watchdog if no hardware watchdog is 668 configured. As before, SW_WATCHDOG will cause the software 669 watchdog to be enabled even if a hardware watchdog is configured. 670 67120171215: 672 r326887 fixes the issue described in the 20171214 UPDATING entry. 673 r326888 flips the switch back to building GELI support always. 674 67520171214: 676 r362593 broke ZFS + GELI support for reasons unknown. However, 677 it also broke ZFS support generally, so GELI has been turned off 678 by default as the lesser evil in r326857. If you boot off ZFS and/or 679 GELI, it might not be a good time to update. 680 68120171125: 682 PowerPC users must update loader(8) by rebuilding world before 683 installing a new kernel, as the protocol connecting them has 684 changed. Without the update, loader metadata will not be passed 685 successfully to the kernel and users will have to enter their 686 root partition at the kernel mountroot prompt to continue booting. 687 Newer versions of loader can boot old kernels without issue. 688 68920171110: 690 The LOADER_FIREWIRE_SUPPORT build variable as been renamed to 691 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 692 to WITH/OUT_LOADER_GELI. 693 69420171106: 695 The naive and non-compliant support of posix_fallocate(2) in ZFS 696 has been removed as of r325320. The system call now returns EINVAL 697 when used on a ZFS file. Although the new behavior complies with the 698 standard, some consumers are not prepared to cope with it. 699 One known victim is lld prior to r325420. 700 70120171102: 702 Building in a FreeBSD src checkout will automatically create object 703 directories now rather than store files in the current directory if 704 'make obj' was not ran. Calling 'make obj' is no longer necessary. 705 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 706 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 707 environment. 708 70920171101: 710 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 711 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 712 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 713 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 714 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 715 The UNIFIED_OBJDIR option is a transitional feature that will be 716 removed for 12.0 release; please migrate to the new format for any 717 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 718 than hardcoding paths. 719 72020171028: 721 The native-xtools target no longer installs the files by default to the 722 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 723 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 724 72520171021: 726 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 727 options are changing from controlling the build if defined / undefined 728 to controlling the build with explicit 'yes' or 'no' values. They will 729 shift to WITH/WITHOUT options to match other options in the system. 730 73120171010: 732 libstand has turned into a private library for sys/boot use only. 733 It is no longer supported as a public interface outside of sys/boot. 734 73520171005: 736 The arm port has split armv6 into armv6 and armv7. armv7 is now 737 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 738 and are running a kernel from before r324363, you will need to add 739 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 740 74120171003: 742 When building multiple kernels using KERNCONF, non-existent KERNCONF 743 files will produce an error and buildkernel will fail. Previously 744 missing KERNCONF files silently failed giving no indication as to 745 why, only to subsequently discover during installkernel that the 746 desired kernel was never built in the first place. 747 74820170912: 749 The default serial number format for CTL LUNs has changed. This will 750 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 751 or iSCSI clients care about their LUNs' serial numbers. Users who 752 require serial number stability should hardcode serial numbers in 753 /etc/ctl.conf . 754 75520170912: 756 For 32-bit arm compiled for hard-float support, soft-floating point 757 binaries now always get their shared libraries from 758 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 759 /usr/libsoft also existed). Only users with a hard-float ld.so, but 760 soft-float everything else should be affected. 761 76220170826: 763 The geli password typed at boot is now hidden. To restore the previous 764 behavior, see geli(8) for configuration options. 765 76620170825: 767 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 768 sysctl values. Minor nit, but requires a rebuild of both world/kernel 769 to complete. 770 77120170814: 772 "make check" behavior (made in ^/head@r295380) has been changed to 773 execute from a limited sandbox, as opposed to executing from 774 ${TESTSDIR}. 775 776 Behavioral changes: 777 - The "beforecheck" and "aftercheck" targets are now specified. 778 - ${CHECKDIR} (added in commit noted above) has been removed. 779 - Legacy behavior can be enabled by setting 780 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 781 782 If the limited sandbox mode is enabled, "make check" will execute 783 "make distribution", then install, execute the tests, and clean up the 784 sandbox if successful. 785 786 The "make distribution" and "make install" targets are typically run as 787 root to set appropriate permissions and ownership at installation time. 788 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 789 environment if executing "make check" with limited sandbox mode using 790 an unprivileged user. 791 79220170808: 793 Since the switch to GPT disk labels, fsck for UFS/FFS has been 794 unable to automatically find alternate superblocks. As of r322297, 795 the information needed to find alternate superblocks has been 796 moved to the end of the area reserved for the boot block. 797 Filesystems created with a newfs of this vintage or later 798 will create the recovery information. If you have a filesystem 799 created prior to this change and wish to have a recovery block 800 created for your filesystem, you can do so by running fsck in 801 foreground mode (i.e., do not use the -p or -y options). As it 802 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 803 to which you should answer yes. 804 80520170728: 806 As of r321665, an NFSv4 server configuration that services 807 Kerberos mounts or clients that do not support the uid/gid in 808 owner/owner_group string capability, must explicitly enable 809 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 810 machine's /etc/rc.conf file. 811 81220170722: 813 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 814 Please see the 20141231 entry below for information about prerequisites 815 and upgrading, if you are not already using clang 3.5.0 or higher. 816 81720170701: 818 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 819 r-commands (rlogin, rsh, etc.) to be built with the base system. 820 82120170625: 822 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 823 a very major ABI incompatible change, so users of FreeBSD/powerpc must 824 be careful when performing source upgrades. It is best to run 825 'make installworld' from an alternate root system, either a live 826 CD/memory stick, or a temporary root partition. Additionally, all ports 827 must be recompiled. powerpc64 is largely unaffected, except in the case 828 of 32-bit compatibility. All 32-bit binaries will be affected. 829 83020170623: 831 Forward compatibility for the "ino64" project have been committed. This 832 will allow most new binaries to run on older kernels in a limited 833 fashion. This prevents many of the common foot-shooting actions in the 834 upgrade as well as the limited ability to roll back the kernel across 835 the ino64 upgrade. Complicated use cases may not work properly, though 836 enough simpler ones work to allow recovery in most situations. 837 83820170620: 839 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 840 if you require the GPL compiler. 841 84220170618: 843 The internal ABI used for communication between the NFS kernel modules 844 was changed by r320085, so __FreeBSD_version was bumped to 845 ensure all the NFS related modules are updated together. 846 84720170617: 848 The ABI of struct event was changed by extending the data 849 member to 64bit and adding ext fields. For upgrade, same 850 precautions as for the entry 20170523 "ino64" must be 851 followed. 852 85320170531: 854 The GNU roff toolchain has been removed from base. To render manpages 855 which are not supported by mandoc(1), man(1) can fallback on GNU roff 856 from ports (and recommends to install it). 857 To render roff(7) documents, consider using GNU roff from ports or the 858 heirloom doctools roff toolchain from ports via pkg install groff or 859 via pkg install heirloom-doctools. 860 86120170524: 862 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 863 smaller runtime footprint builds. This is useful for embedded systems 864 which only require one chipset support. 865 866 If you load it as a module, make sure this is in /boot/loader.conf: 867 868 if_ath_load="YES" 869 870 This will load the HAL, all chip/RF backends and if_ath_pci. 871 If you have if_ath_pci in /boot/loader.conf, ensure it is after 872 if_ath or it will not load any HAL chipset support. 873 874 If you want to selectively load things (eg on ye cheape ARM/MIPS 875 platforms where RAM is at a premium) you should: 876 877 * load ath_hal 878 * load the chip modules in question 879 * load ath_rate, ath_dfs 880 * load ath_main 881 * load if_ath_pci and/or if_ath_ahb depending upon your particular 882 bus bind type - this is where probe/attach is done. 883 884 For further comments/feedback, poke adrian@ . 885 88620170523: 887 The "ino64" 64-bit inode project has been committed, which extends 888 a number of types to 64 bits. Upgrading in place requires care and 889 adherence to the documented upgrade procedure. 890 891 If using a custom kernel configuration ensure that the 892 COMPAT_FREEBSD11 option is included (as during the upgrade the 893 system will be running the ino64 kernel with the existing world). 894 895 For the safest in-place upgrade begin by removing previous build 896 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full 897 procedure documented below under the heading "To rebuild everything and 898 install it on the current system." Specifically, a reboot is required 899 after installing the new kernel before installing world. While an 900 installworld normally works by accident from multiuser after rebooting 901 the proper kernel, there are many cases where this will fail across this 902 upgrade and installworld from single user is required. 903 90420170424: 905 The NATM framework including the en(4), fatm(4), hatm(4), and 906 patm(4) devices has been removed. Consumers should plan a 907 migration before the end-of-life date for FreeBSD 11. 908 90920170420: 910 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 911 diff has not been implemented, if those are needed a newer version of 912 GNU diff is available via the diffutils package under the gdiff name. 913 91420170413: 915 As of r316810 for ipfilter, keep frags is no longer assumed when 916 keep state is specified in a rule. r316810 aligns ipfilter with 917 documentation in man pages separating keep frags from keep state. 918 This allows keep state to be specified without forcing keep frags 919 and allows keep frags to be specified independently of keep state. 920 To maintain previous behaviour, also specify keep frags with 921 keep state (as documented in ipf.conf.5). 922 92320170407: 924 arm64 builds now use the base system LLD 4.0.0 linker by default, 925 instead of requiring that the aarch64-binutils port or package be 926 installed. To continue using aarch64-binutils, set 927 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 928 92920170405: 930 The UDP optimization in entry 20160818 that added the sysctl 931 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 932 packets will no longer be treated as L3 broadcast packets. 933 93420170331: 935 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 936 use any explicitly assigned loopback address available in the jail 937 instead of using the first assigned address of the jail. 938 93920170329: 940 The ctl.ko module no longer implements the iSCSI target frontend: 941 cfiscsi.ko does instead. 942 943 If building cfiscsi.ko as a kernel module, the module can be loaded 944 via one of the following methods: 945 - `cfiscsi_load="YES"` in loader.conf(5). 946 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 947 - ctladm(8)/ctld(8), when compiled with iSCSI support 948 (`WITH_ISCSI=yes` in src.conf(5)) 949 950 Please see cfiscsi(4) for more details. 951 95220170316: 953 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 954 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 955 same source (previously, the dependency of mmcsd.ko on mmc.ko was 956 missing, but mmcsd.ko now will refuse to load if it is incompatible 957 with mmc.ko). 958 95920170315: 960 The syntax of ipfw(8) named states was changed to avoid ambiguity. 961 If you have used named states in the firewall rules, you need to modify 962 them after installworld and before rebooting. Now named states must 963 be prefixed with colon. 964 96520170311: 966 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 967 removed as the userland we provide cannot use them. The KMS version 968 (sys/dev/drm2) supports the same hardware. 969 97020170302: 971 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 972 Please see the 20141231 entry below for information about prerequisites 973 and upgrading, if you are not already using clang 3.5.0 or higher. 974 97520170221: 976 The code that provides support for ZFS .zfs/ directory functionality 977 has been reimplemented. It's not possible now to create a snapshot 978 by mkdir under .zfs/snapshot/. That should be the only user visible 979 change. 980 98120170216: 982 EISA bus support has been removed. The WITH_EISA option is no longer 983 valid. 984 98520170215: 986 MCA bus support has been removed. 987 98820170127: 989 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 990 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 991 99220170112: 993 The EM_MULTIQUEUE kernel configuration option is deprecated now that 994 the em(4) driver conforms to iflib specifications. 995 99620170109: 997 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 998 IFLIB. If you have a custom kernel configuration that excludes em(4) 999 but you use igb(4), you need to re-add em(4) to your custom 1000 configuration. 1001 100220161217: 1003 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 1004 Please see the 20141231 entry below for information about prerequisites 1005 and upgrading, if you are not already using clang 3.5.0 or higher. 1006 100720161124: 1008 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 1009 Please see the 20141231 entry below for information about prerequisites 1010 and upgrading, if you are not already using clang 3.5.0 or higher. 1011 101220161119: 1013 The layout of the pmap structure has changed for powerpc to put the pmap 1014 statistics at the front for all CPU variations. libkvm(3) and all tools 1015 that link against it need to be recompiled. 1016 101720161030: 1018 isl(4) and cyapa(4) drivers now require a new driver, 1019 chromebook_platform(4), to work properly on Chromebook-class hardware. 1020 On other types of hardware the drivers may need to be configured using 1021 device hints. Please see the corresponding manual pages for details. 1022 102320161017: 1024 The urtwn(4) driver was merged into rtwn(4) and now consists of 1025 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 1026 parts. 1027 Also, firmware for RTL8188CE was renamed due to possible name 1028 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 1029 103020161015: 1031 GNU rcs has been removed from base. It is available as packages: 1032 - rcs: Latest GPLv3 GNU rcs version. 1033 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 1034 removed from base. 1035 103620161008: 1037 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 1038 modules now requires that the kernel configuration contain the 1039 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 1040 104120161003: 1042 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 1043 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 1044 104520160924: 1046 Relocatable object files with the extension of .So have been renamed 1047 to use an extension of .pico instead. The purpose of this change is 1048 to avoid a name clash with shared libraries on case-insensitive file 1049 systems. On those file systems, foo.So is the same file as foo.so. 1050 105120160918: 1052 GNU rcs has been turned off by default. It can (temporarily) be built 1053 again by adding WITH_RCS knob in src.conf. 1054 Otherwise, GNU rcs is available from packages: 1055 - rcs: Latest GPLv3 GNU rcs version. 1056 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 1057 105820160918: 1059 The backup_uses_rcs functionality has been removed from rc.subr. 1060 106120160908: 1062 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 1063 two separate components, QUEUE_MACRO_DEBUG_TRACE and 1064 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 1065 QUEUE_MACRO_DEBUG behavior. 1066 106720160824: 1068 r304787 changed some ioctl interfaces between the iSCSI userspace 1069 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 1070 rebuilt to work with new kernels. __FreeBSD_version has been bumped 1071 to 1200005. 1072 107320160818: 1074 The UDP receive code has been updated to only treat incoming UDP 1075 packets that were addressed to an L2 broadcast address as L3 1076 broadcast packets. It is not expected that this will affect any 1077 standards-conforming UDP application. The new behaviour can be 1078 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 1079 0. 1080 108120160818: 1082 Remove the openbsd_poll system call. 1083 __FreeBSD_version has been bumped because of this. 1084 108520160708: 1086 The stable/11 branch has been created from head@r302406. 1087 108820160622: 1089 The libc stub for the pipe(2) system call has been replaced with 1090 a wrapper that calls the pipe2(2) system call and the pipe(2) 1091 system call is now only implemented by the kernels that include 1092 "options COMPAT_FREEBSD10" in their config file (this is the 1093 default). Users should ensure that this option is enabled in 1094 their kernel or upgrade userspace to r302092 before upgrading their 1095 kernel. 1096 109720160527: 1098 CAM will now strip leading spaces from SCSI disks' serial numbers. 1099 This will affect users who create UFS filesystems on SCSI disks using 1100 those disk's diskid device nodes. For example, if /etc/fstab 1101 previously contained a line like 1102 "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should 1103 change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom 1104 transforms like gmirror may also be affected. ZFS users should 1105 generally be fine. 1106 110720160523: 1108 The bitstring(3) API has been updated with new functionality and 1109 improved performance. But it is binary-incompatible with the old API. 1110 Objects built with the new headers may not be linked against objects 1111 built with the old headers. 1112 111320160520: 1114 The brk and sbrk functions have been removed from libc on arm64. 1115 Binutils from ports has been updated to not link to these 1116 functions and should be updated to the latest version before 1117 installing a new libc. 1118 111920160517: 1120 The armv6 port now defaults to hard float ABI. Limited support 1121 for running both hardfloat and soft float on the same system 1122 is available using the libraries installed with -DWITH_LIBSOFT. 1123 This has only been tested as an upgrade path for installworld 1124 and packages may fail or need manual intervention to run. New 1125 packages will be needed. 1126 1127 To update an existing self-hosted armv6hf system, you must add 1128 TARGET_ARCH=armv6 on the make command line for both the build 1129 and the install steps. 1130 113120160510: 1132 Kernel modules compiled outside of a kernel build now default to 1133 installing to /boot/modules instead of /boot/kernel. Many kernel 1134 modules built this way (such as those in ports) already overrode 1135 KMODDIR explicitly to install into /boot/modules. However, 1136 manually building and installing a module from /sys/modules will 1137 now install to /boot/modules instead of /boot/kernel. 1138 113920160414: 1140 The CAM I/O scheduler has been committed to the kernel. There should be 1141 no user visible impact. This does enable NCQ Trim on ada SSDs. While the 1142 list of known rogues that claim support for this but actually corrupt 1143 data is believed to be complete, be on the lookout for data 1144 corruption. The known rogue list is believed to be complete: 1145 1146 o Crucial MX100, M550 drives with MU01 firmware. 1147 o Micron M510 and M550 drives with MU01 firmware. 1148 o Micron M500 prior to MU07 firmware 1149 o Samsung 830, 840, and 850 all firmwares 1150 o FCCT M500 all firmwares 1151 1152 Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware 1153 with working NCQ TRIM. For Micron branded drives, see your sales rep for 1154 updated firmware. Black listed drives will work correctly because these 1155 drives work correctly so long as no NCQ TRIMs are sent to them. Given 1156 this list is the same as found in Linux, it's believed there are no 1157 other rogues in the market place. All other models from the above 1158 vendors work. 1159 1160 To be safe, if you are at all concerned, you can quirk each of your 1161 drives to prevent NCQ from being sent by setting: 1162 kern.cam.ada.X.quirks="0x2" 1163 in loader.conf. If the drive requires the 4k sector quirk, set the 1164 quirks entry to 0x3. 1165 116620160330: 1167 The FAST_DEPEND build option has been removed and its functionality is 1168 now the one true way. The old mkdep(1) style of 'make depend' has 1169 been removed. See 20160311 for further details. 1170 117120160317: 1172 Resource range types have grown from unsigned long to uintmax_t. All 1173 drivers, and anything using libdevinfo, need to be recompiled. 1174 117520160311: 1176 WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree 1177 builds. It no longer runs mkdep(1) during 'make depend', and the 1178 'make depend' stage can safely be skipped now as it is auto ran 1179 when building 'make all' and will generate all SRCS and DPSRCS before 1180 building anything else. Dependencies are gathered at compile time with 1181 -MF flags kept in separate .depend files per object file. Users should 1182 run 'make cleandepend' once if using -DNO_CLEAN to clean out older 1183 stale .depend files. 1184 118520160306: 1186 On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into 1187 kernel modules. Therefore, if you load any kernel modules at boot time, 1188 please install the boot loaders after you install the kernel, but before 1189 rebooting, e.g.: 1190 1191 make buildworld 1192 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1193 make installkernel KERNCONF=YOUR_KERNEL_HERE 1194 make -C sys/boot install 1195 <reboot in single user> 1196 1197 Then follow the usual steps, described in the General Notes section, 1198 below. 1199 120020160305: 1201 Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please 1202 see the 20141231 entry below for information about prerequisites and 1203 upgrading, if you are not already using clang 3.5.0 or higher. 1204 120520160301: 1206 The AIO subsystem is now a standard part of the kernel. The 1207 VFS_AIO kernel option and aio.ko kernel module have been removed. 1208 Due to stability concerns, asynchronous I/O requests are only 1209 permitted on sockets and raw disks by default. To enable 1210 asynchronous I/O requests on all file types, set the 1211 vfs.aio.enable_unsafe sysctl to a non-zero value. 1212 121320160226: 1214 The ELF object manipulation tool objcopy is now provided by the 1215 ELF Tool Chain project rather than by GNU binutils. It should be a 1216 drop-in replacement, with the addition of arm64 support. The 1217 (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set 1218 to obtain the GNU version if necessary. 1219 122020160129: 1221 Building ZFS pools on top of zvols is prohibited by default. That 1222 feature has never worked safely; it's always been prone to deadlocks. 1223 Using a zvol as the backing store for a VM guest's virtual disk will 1224 still work, even if the guest is using ZFS. Legacy behavior can be 1225 restored by setting vfs.zfs.vol.recursive=1. 1226 122720160119: 1228 The NONE and HPN patches has been removed from OpenSSH. They are 1229 still available in the security/openssh-portable port. 1230 123120160113: 1232 With the addition of ypldap(8), a new _ypldap user is now required 1233 during installworld. "mergemaster -p" can be used to add the user 1234 prior to installworld, as documented in the handbook. 1235 123620151216: 1237 The tftp loader (pxeboot) now uses the option root-path directive. As a 1238 consequence it no longer looks for a pxeboot.4th file on the tftp 1239 server. Instead it uses the regular /boot infrastructure as with the 1240 other loaders. 1241 124220151211: 1243 The code to start recording plug and play data into the modules has 1244 been committed. While the old tools will properly build a new kernel, 1245 a number of warnings about "unknown metadata record 4" will be produced 1246 for an older kldxref. To avoid such warnings, make sure to rebuild 1247 the kernel toolchain (or world). Make sure that you have r292078 or 1248 later when trying to build 292077 or later before rebuilding. 1249 125020151207: 1251 Debug data files are now built by default with 'make buildworld' and 1252 installed with 'make installworld'. This facilitates debugging but 1253 requires more disk space both during the build and for the installed 1254 world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes 1255 in src.conf(5). 1256 125720151130: 1258 r291527 changed the internal interface between the nfsd.ko and 1259 nfscommon.ko modules. As such, they must both be upgraded to-gether. 1260 __FreeBSD_version has been bumped because of this. 1261 126220151108: 1263 Add support for unicode collation strings leads to a change of 1264 order of files listed by ls(1) for example. To get back to the old 1265 behaviour, set LC_COLLATE environment variable to "C". 1266 1267 Databases administrators will need to reindex their databases given 1268 collation results will be different. 1269 1270 Due to a bug in install(1) it is recommended to remove the ancient 1271 locales before running make installworld. 1272 1273 rm -rf /usr/share/locale/* 1274 127520151030: 1276 The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring 1277 libcrypto.so.7 or libssl.so.7 must be recompiled. 1278 127920151020: 1280 Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. 1281 Kernel modules isp_2400_multi and isp_2500_multi were removed and 1282 should be replaced with isp_2400 and isp_2500 modules respectively. 1283 128420151017: 1285 The build previously allowed using 'make -n' to not recurse into 1286 sub-directories while showing what commands would be executed, and 1287 'make -n -n' to recursively show commands. Now 'make -n' will recurse 1288 and 'make -N' will not. 1289 129020151012: 1291 If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster 1292 and etcupdate will now use this file. A custom sendmail.cf is now 1293 updated via this mechanism rather than via installworld. If you had 1294 excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may 1295 want to remove the exclusion or change it to "always install". 1296 /etc/mail/sendmail.cf is now managed the same way regardless of 1297 whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using 1298 SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 1299 130020151011: 1301 Compatibility shims for legacy ATA device names have been removed. 1302 It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases 1303 and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* 1304 environment variables, /dev/ad* and /dev/ar* symbolic links. 1305 130620151006: 1307 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. 1308 Please see the 20141231 entry below for information about prerequisites 1309 and upgrading, if you are not already using clang 3.5.0 or higher. 1310 131120150924: 1312 Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, 1313 and renamed from .symbols to .debug. This reduces the size requirements 1314 on the boot partition or file system and provides consistency with 1315 userland debug files. 1316 1317 When using the supported kernel installation method the 1318 /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) 1319 as is done with /boot/kernel. 1320 1321 Developers wishing to maintain the historical behavior of installing 1322 debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 1323 132420150827: 1325 The wireless drivers had undergone changes that remove the 'parent 1326 interface' from the ifconfig -l output. The rc.d network scripts 1327 used to check presence of a parent interface in the list, so old 1328 scripts would fail to start wireless networking. Thus, etcupdate(3) 1329 or mergemaster(8) run is required after kernel update, to update your 1330 rc.d scripts in /etc. 1331 133220150827: 1333 pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' 1334 These configurations are now automatically interpreted as 1335 'scrub fragment reassemble'. 1336 133720150817: 1338 Kernel-loadable modules for the random(4) device are back. To use 1339 them, the kernel must have 1340 1341 device random 1342 options RANDOM_LOADABLE 1343 1344 kldload(8) can then be used to load random_fortuna.ko 1345 or random_yarrow.ko. Please note that due to the indirect 1346 function calls that the loadable modules need to provide, 1347 the build-in variants will be slightly more efficient. 1348 1349 The random(4) kernel option RANDOM_DUMMY has been retired due to 1350 unpopularity. It was not all that useful anyway. 1351 135220150813: 1353 The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. 1354 Control over building the ELF Tool Chain tools is now provided by 1355 the WITHOUT_TOOLCHAIN knob. 1356 135720150810: 1358 The polarity of Pulse Per Second (PPS) capture events with the 1359 uart(4) driver has been corrected. Prior to this change the PPS 1360 "assert" event corresponded to the trailing edge of a positive PPS 1361 pulse and the "clear" event was the leading edge of the next pulse. 1362 1363 As the width of a PPS pulse in a typical GPS receiver is on the 1364 order of 1 millisecond, most users will not notice any significant 1365 difference with this change. 1366 1367 Anyone who has compensated for the historical polarity reversal by 1368 configuring a negative offset equal to the pulse width will need to 1369 remove that workaround. 1370 137120150809: 1372 The default group assigned to /dev/dri entries has been changed 1373 from 'wheel' to 'video' with the id of '44'. If you want to have 1374 access to the dri devices please add yourself to the video group 1375 with: 1376 1377 # pw groupmod video -m $USER 1378 137920150806: 1380 The menu.rc and loader.rc files will now be replaced during 1381 upgrades. Please migrate local changes to menu.rc.local and 1382 loader.rc.local instead. 1383 138420150805: 1385 GNU Binutils versions of addr2line, c++filt, nm, readelf, size, 1386 strings and strip have been removed. The src.conf(5) knob 1387 WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 1388 138920150728: 1390 As ZFS requires more kernel stack pages than is the default on some 1391 architectures e.g. i386, it now warns if KSTACK_PAGES is less than 1392 ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). 1393 1394 Please consider using 'options KSTACK_PAGES=X' where X is greater 1395 than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 1396 139720150706: 1398 sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 1399 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by 1400 default, i.e., they will not contain "::". For example, instead 1401 of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet 1402 to have a more specific match, such as different map entries for 1403 IPv6:0:0 vs IPv6:0. This change requires that configuration 1404 data (including maps, files, classes, custom ruleset, etc.) must 1405 use the same format, so make certain such configuration data is 1406 upgrading. As a very simple check search for patterns like 1407 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old 1408 behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or 1409 the cf option UseCompressedIPv6Addresses. 1410 141120150630: 1412 The default kernel entropy-processing algorithm is now 1413 Fortuna, replacing Yarrow. 1414 1415 Assuming you have 'device random' in your kernel config 1416 file, the configurations allow a kernel option to override 1417 this default. You may choose *ONE* of: 1418 1419 options RANDOM_YARROW # Legacy /dev/random algorithm. 1420 options RANDOM_DUMMY # Blocking-only driver. 1421 1422 If you have neither, you get Fortuna. For most people, 1423 read no further, Fortuna will give a /dev/random that works 1424 like it always used to, and the difference will be irrelevant. 1425 1426 If you remove 'device random', you get *NO* kernel-processed 1427 entropy at all. This may be acceptable to folks building 1428 embedded systems, but has complications. Carry on reading, 1429 and it is assumed you know what you need. 1430 1431 *PLEASE* read random(4) and random(9) if you are in the 1432 habit of tweaking kernel configs, and/or if you are a member 1433 of the embedded community, wanting specific and not-usual 1434 behaviour from your security subsystems. 1435 1436 NOTE!! If you use RANDOM_DUMMY and/or have no 'device 1437 random', you will NOT have a functioning /dev/random, and 1438 many cryptographic features will not work, including SSH. 1439 You may also find strange behaviour from the random(3) set 1440 of library functions, in particular sranddev(3), srandomdev(3) 1441 and arc4random(3). The reason for this is that the KERN_ARND 1442 sysctl only returns entropy if it thinks it has some to 1443 share, and with RANDOM_DUMMY or no 'device random' this 1444 will never happen. 1445 144620150623: 1447 An additional fix for the issue described in the 20150614 sendmail 1448 entry below has been committed in revision 284717. 1449 145020150616: 1451 FreeBSD's old make (fmake) has been removed from the system. It is 1452 available as the devel/fmake port or via pkg install fmake. 1453 145420150615: 1455 The fix for the issue described in the 20150614 sendmail entry 1456 below has been committed in revision 284436. The work 1457 around described in that entry is no longer needed unless the 1458 default setting is overridden by a confDH_PARAMETERS configuration 1459 setting of '5' or pointing to a 512 bit DH parameter file. 1460 146120150614: 1462 ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from 1463 atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf 1464 and devel/kyua to version 0.20+ and adjust any calling code to work 1465 with Kyuafile and kyua. 1466 146720150614: 1468 The import of openssl to address the FreeBSD-SA-15:10.openssl 1469 security advisory includes a change which rejects handshakes 1470 with DH parameters below 768 bits. sendmail releases prior 1471 to 8.15.2 (not yet released), defaulted to a 512 bit 1472 DH parameter setting for client connections. To work around 1473 this interoperability, sendmail can be configured to use a 1474 2048 bit DH parameter by: 1475 1476 1. Edit /etc/mail/`hostname`.mc 1477 2. If a setting for confDH_PARAMETERS does not exist or 1478 exists and is set to a string beginning with '5', 1479 replace it with '2'. 1480 3. If a setting for confDH_PARAMETERS exists and is set to 1481 a file path, create a new file with: 1482 openssl dhparam -out /path/to/file 2048 1483 4. Rebuild the .cf file: 1484 cd /etc/mail/; make; make install 1485 5. Restart sendmail: 1486 cd /etc/mail/; make restart 1487 1488 A sendmail patch is coming, at which time this file will be 1489 updated. 1490 149120150604: 1492 Generation of legacy formatted entries have been disabled by default 1493 in pwd_mkdb(8), as all base system consumers of the legacy formatted 1494 entries were converted to use the new format by default when the new, 1495 machine independent format have been added and supported since FreeBSD 1496 5.x. 1497 1498 Please see the pwd_mkdb(8) manual page for further details. 1499 150020150525: 1501 Clang and llvm have been upgraded to 3.6.1 release. Please see the 1502 20141231 entry below for information about prerequisites and upgrading, 1503 if you are not already using 3.5.0 or higher. 1504 150520150521: 1506 TI platform code switched to using vendor DTS files and this update 1507 may break existing systems running on Beaglebone, Beaglebone Black, 1508 and Pandaboard: 1509 1510 - dtb files should be regenerated/reinstalled. Filenames are the 1511 same but content is different now 1512 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 1513 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 1514 addressing scheme is now pin 25 on /dev/gpioc3. 1515 - Pandaboard: /etc/ttys should be updated, serial console device is 1516 now /dev/ttyu2, not /dev/ttyu0 1517 151820150501: 1519 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 1520 If you need the GNU extension from groff soelim(1), install groff 1521 from package: pkg install groff, or via ports: textproc/groff. 1522 152320150423: 1524 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 1525 defined in symlink(7); previously symlinks were silently ignored. 1526 152720150415: 1528 The const qualifier has been removed from iconv(3) to comply with 1529 POSIX. The ports tree is aware of this from r384038 onwards. 1530 153120150416: 1532 Libraries specified by LIBADD in Makefiles must have a corresponding 1533 DPADD_<lib> variable to ensure correct dependencies. This is now 1534 enforced in src.libnames.mk. 1535 153620150324: 1537 From legacy ata(4) driver was removed support for SATA controllers 1538 supported by more functional drivers ahci(4), siis(4) and mvs(4). 1539 Kernel modules ataahci and ataadaptec were removed completely, 1540 replaced by ahci and mvs modules respectively. 1541 154220150315: 1543 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 1544 the 20141231 entry below for information about prerequisites and 1545 upgrading, if you are not already using 3.5.0 or higher. 1546 154720150307: 1548 The 32-bit PowerPC kernel has been changed to a position-independent 1549 executable. This can only be booted with a version of loader(8) 1550 newer than January 31, 2015, so make sure to update both world and 1551 kernel before rebooting. 1552 155320150217: 1554 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 1555 but before r278950, the RNG was not seeded properly. Immediately 1556 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 1557 ssh keys or openssl keys) that were generated w/ a kernel from that 1558 range. This does not affect programs that directly used /dev/random 1559 or /dev/urandom. All userland uses of arc4random(3) are affected. 1560 156120150210: 1562 The autofs(4) ABI was changed in order to restore binary compatibility 1563 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 1564 with the new kernel. 1565 156620150131: 1567 The powerpc64 kernel has been changed to a position-independent 1568 executable. This can only be booted with a new version of loader(8), 1569 so make sure to update both world and kernel before rebooting. 1570 157120150118: 1572 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 1573 only release, no new features have been added. Please see the 20141231 1574 entry below for information about prerequisites and upgrading, if you 1575 are not already using 3.5.0. 1576 157720150107: 1578 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 1579 taken from the ELF Tool Chain project rather than GNU binutils. They 1580 should be drop-in replacements, with the addition of arm64 support. 1581 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 1582 binutils tools, if necessary. See 20150805 for updated information. 1583 158420150105: 1585 The default Unbound configuration now enables remote control 1586 using a local socket. Users who have already enabled the 1587 local_unbound service should regenerate their configuration 1588 by running "service local_unbound setup" as root. 1589 159020150102: 1591 The GNU texinfo and GNU info pages have been removed. 1592 To be able to view GNU info pages please install texinfo from ports. 1593 159420141231: 1595 Clang, llvm and lldb have been upgraded to 3.5.0 release. 1596 1597 As of this release, a prerequisite for building clang, llvm and lldb is 1598 a C++11 capable compiler and C++11 standard library. This means that to 1599 be able to successfully build the cross-tools stage of buildworld, with 1600 clang as the bootstrap compiler, your system compiler or cross compiler 1601 should either be clang 3.3 or later, or gcc 4.8 or later, and your 1602 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 1603 later. 1604 1605 On any standard FreeBSD 10.x or 11.x installation, where clang and 1606 libc++ are on by default (that is, on x86 or arm), this should work out 1607 of the box. 1608 1609 On 9.x installations where clang is enabled by default, e.g. on x86 and 1610 powerpc, libc++ will not be enabled by default, so libc++ should be 1611 built (with clang) and installed first. If both clang and libc++ are 1612 missing, build clang first, then use it to build libc++. 1613 1614 On 8.x and earlier installations, upgrade to 9.x first, and then follow 1615 the instructions for 9.x above. 1616 1617 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 1618 default, and do not build clang. 1619 1620 Many embedded systems are resource constrained, and will not be able to 1621 build clang in a reasonable time, or in some cases at all. In those 1622 cases, cross building bootable systems on amd64 is a workaround. 1623 1624 This new version of clang introduces a number of new warnings, of which 1625 the following are most likely to appear: 1626 1627 -Wabsolute-value 1628 1629 This warns in two cases, for both C and C++: 1630 * When the code is trying to take the absolute value of an unsigned 1631 quantity, which is effectively a no-op, and almost never what was 1632 intended. The code should be fixed, if at all possible. If you are 1633 sure that the unsigned quantity can be safely cast to signed, without 1634 loss of information or undefined behavior, you can add an explicit 1635 cast, or disable the warning. 1636 1637 * When the code is trying to take an absolute value, but the called 1638 abs() variant is for the wrong type, which can lead to truncation. 1639 If you want to disable the warning instead of fixing the code, please 1640 make sure that truncation will not occur, or it might lead to unwanted 1641 side-effects. 1642 1643 -Wtautological-undefined-compare and 1644 -Wundefined-bool-conversion 1645 1646 These warn when C++ code is trying to compare 'this' against NULL, while 1647 'this' should never be NULL in well-defined C++ code. However, there is 1648 some legacy (pre C++11) code out there, which actively abuses this 1649 feature, which was less strictly defined in previous C++ versions. 1650 1651 Squid and openjdk do this, for example. The warning can be turned off 1652 for C++98 and earlier, but compiling the code in C++11 mode might result 1653 in unexpected behavior; for example, the parts of the program that are 1654 unreachable could be optimized away. 1655 165620141222: 1657 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 1658 kernel sources have been removed. The .h files remain, since some 1659 utilities include them. This will need to be fixed later. 1660 If "mount -t oldnfs ..." is attempted, it will fail. 1661 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 1662 the utilities will report errors. 1663 166420141121: 1665 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 1666 directories to top level SUBDIR variable when their parent 1667 directory is included in LOCAL_DIRS. Users with build systems with 1668 such hierarchies and without SUBDIR entries in the parent 1669 directory Makefiles should add them or add the directories to 1670 LOCAL_DIRS. 1671 167220141109: 1673 faith(4) and faithd(8) have been removed from the base system. Faith 1674 has been obsolete for a very long time. 1675 167620141104: 1677 vt(4), the new console driver, is enabled by default. It brings 1678 support for Unicode and double-width characters, as well as 1679 support for UEFI and integration with the KMS kernel video 1680 drivers. 1681 1682 You may need to update your console settings in /etc/rc.conf, 1683 most probably the keymap. During boot, /etc/rc.d/syscons will 1684 indicate what you need to do. 1685 1686 vt(4) still has issues and lacks some features compared to 1687 syscons(4). See the wiki for up-to-date information: 1688 https://wiki.freebsd.org/Newcons 1689 1690 If you want to keep using syscons(4), you can do so by adding 1691 the following line to /boot/loader.conf: 1692 kern.vty=sc 1693 169420141102: 1695 pjdfstest has been integrated into kyua as an opt-in test suite. 1696 Please see share/doc/pjdfstest/README for more details on how to 1697 execute it. 1698 169920141009: 1700 gperf has been removed from the base system for architectures 1701 that use clang. Ports that require gperf will obtain it from the 1702 devel/gperf port. 1703 170420140923: 1705 pjdfstest has been moved from tools/regression/pjdfstest to 1706 contrib/pjdfstest . 1707 170820140922: 1709 At svn r271982, The default linux compat kernel ABI has been adjusted 1710 to 2.6.18 in support of the linux-c6 compat ports infrastructure 1711 update. If you wish to continue using the linux-f10 compat ports, 1712 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 1713 encouraged to update their linux-compat packages to linux-c6 during 1714 their next update cycle. 1715 171620140729: 1717 The ofwfb driver, used to provide a graphics console on PowerPC when 1718 using vt(4), no longer allows mmap() of all physical memory. This 1719 will prevent Xorg on PowerPC with some ATI graphics cards from 1720 initializing properly unless x11-servers/xorg-server is updated to 1721 1.12.4_8 or newer. 1722 172320140723: 1724 The xdev targets have been converted to using TARGET and 1725 TARGET_ARCH instead of XDEV and XDEV_ARCH. 1726 172720140719: 1728 The default unbound configuration has been modified to address 1729 issues with reverse lookups on networks that use private 1730 address ranges. If you use the local_unbound service, run 1731 "service local_unbound setup" as root to regenerate your 1732 configuration, then "service local_unbound reload" to load the 1733 new configuration. 1734 173520140709: 1736 The GNU texinfo and GNU info pages are not built and installed 1737 anymore, WITH_INFO knob has been added to allow to built and install 1738 them again. 1739 UPDATE: see 20150102 entry on texinfo's removal 1740 174120140708: 1742 The GNU readline library is now an INTERNALLIB - that is, it is 1743 statically linked into consumers (GDB and variants) in the base 1744 system, and the shared library is no longer installed. The 1745 devel/readline port is available for third party software that 1746 requires readline. 1747 174820140702: 1749 The Itanium architecture (ia64) has been removed from the list of 1750 known architectures. This is the first step in the removal of the 1751 architecture. 1752 175320140701: 1754 Commit r268115 has added NFSv4.1 server support, merged from 1755 projects/nfsv4.1-server. Since this includes changes to the 1756 internal interfaces between the NFS related modules, a full 1757 build of the kernel and modules will be necessary. 1758 __FreeBSD_version has been bumped. 1759 176020140629: 1761 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 1762 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 1763 which differs from the behaviour controlled by this knob.) 1764 176520140619: 1766 Maximal length of the serial number in CTL was increased from 16 to 1767 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 1768 and ctld, need to be rebuilt to work with a new kernel. 1769 177020140606: 1771 The libatf-c and libatf-c++ major versions were downgraded to 0 and 1772 1 respectively to match the upstream numbers. They were out of 1773 sync because, when they were originally added to FreeBSD, the 1774 upstream versions were not respected. These libraries are private 1775 and not yet built by default, so renumbering them should be a 1776 non-issue. However, unclean source trees will yield broken test 1777 programs once the operator executes "make delete-old-libs" after a 1778 "make installworld". 1779 1780 Additionally, the atf-sh binary was made private by moving it into 1781 /usr/libexec/. Already-built shell test programs will keep the 1782 path to the old binary so they will break after "make delete-old" 1783 is run. 1784 1785 If you are using WITH_TESTS=yes (not the default), wipe the object 1786 tree and rebuild from scratch to prevent spurious test failures. 1787 This is only needed once: the misnumbered libraries and misplaced 1788 binaries have been added to OptionalObsoleteFiles.inc so they will 1789 be removed during a clean upgrade. 1790 179120140512: 1792 Clang and llvm have been upgraded to 3.4.1 release. 1793 179420140508: 1795 We bogusly installed src.opts.mk in /usr/share/mk. This file should 1796 be removed to avoid issues in the future (and has been added to 1797 ObsoleteFiles.inc). 1798 179920140505: 1800 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 1801 past, it affected all builds that used the bsd.*.mk files. The old 1802 behavior was a bug, but people may have relied upon it. To get this 1803 behavior back, you can .include /etc/src.conf from /etc/make.conf 1804 (which is still global and isn't changed). This also changes the 1805 behavior of incremental builds inside the tree of individual 1806 directories. Set MAKESYSPATH to ".../share/mk" to do that. 1807 Although this has survived make universe and some upgrade scenarios, 1808 other upgrade scenarios may have broken. At least one form of 1809 temporary breakage was fixed with MAKESYSPATH settings for buildworld 1810 as well... In cases where MAKESYSPATH isn't working with this 1811 setting, you'll need to set it to the full path to your tree. 1812 1813 One side effect of all this cleaning up is that bsd.compiler.mk 1814 is no longer implicitly included by bsd.own.mk. If you wish to 1815 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 1816 as well. 1817 181820140430: 1819 The lindev device has been removed since /dev/full has been made a 1820 standard device. __FreeBSD_version has been bumped. 1821 182220140424: 1823 The knob WITHOUT_VI was added to the base system, which controls 1824 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 1825 in order to reorder files share/termcap and didn't build ex(1) as a 1826 build tool, so building/installing with WITH_VI is highly advised for 1827 build hosts for older releases. 1828 1829 This issue has been fixed in stable/9 and stable/10 in r277022 and 1830 r276991, respectively. 1831 183220140418: 1833 The YES_HESIOD knob has been removed. It has been obsolete for 1834 a decade. Please move to using WITH_HESIOD instead or your builds 1835 will silently lack HESIOD. 1836 183720140405: 1838 The uart(4) driver has been changed with respect to its handling 1839 of the low-level console. Previously the uart(4) driver prevented 1840 any process from changing the baudrate or the CLOCAL and HUPCL 1841 control flags. By removing the restrictions, operators can make 1842 changes to the serial console port without having to reboot. 1843 However, when getty(8) is started on the serial device that is 1844 associated with the low-level console, a misconfigured terminal 1845 line in /etc/ttys will now have a real impact. 1846 Before upgrading the kernel, make sure that /etc/ttys has the 1847 serial console device configured as 3wire without baudrate to 1848 preserve the previous behaviour. E.g: 1849 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 1850 185120140306: 1852 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 1853 to improve performance. To re-enable it, if needed, run rpcbind 1854 with command line option -W. 1855 185620140226: 1857 Switched back to the GPL dtc compiler due to updates in the upstream 1858 dts files not being supported by the BSDL dtc compiler. You will need 1859 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 1860 may result while building dtb files during a kernel build if you fail 1861 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 1862 186320140216: 1864 Clang and llvm have been upgraded to 3.4 release. 1865 186620140216: 1867 The nve(4) driver has been removed. Please use the nfe(4) driver 1868 for NVIDIA nForce MCP Ethernet adapters instead. 1869 187020140212: 1871 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 1872 This could cause certain C++ applications using shared libraries built 1873 against the previous version of libc++ to crash. The incompatibility 1874 has now been fixed, but any C++ applications or shared libraries built 1875 between r261283 and r261801 should be recompiled. 1876 187720140204: 1878 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 1879 capability mode support. Please note that enabling the feature in 1880 kernel is still highly recommended. 1881 188220140131: 1883 OpenSSH is now built with sandbox support, and will use sandbox as 1884 the default privilege separation method. This requires Capsicum 1885 capability mode support in kernel. 1886 188720140128: 1888 The libelf and libdwarf libraries have been updated to newer 1889 versions from upstream. Shared library version numbers for 1890 these two libraries were bumped. Any ports or binaries 1891 requiring these two libraries should be recompiled. 1892 __FreeBSD_version is bumped to 1100006. 1893 189420140110: 1895 If a Makefile in a tests/ directory was auto-generating a Kyuafile 1896 instead of providing an explicit one, this would prevent such 1897 Makefile from providing its own Kyuafile in the future during 1898 NO_CLEAN builds. This has been fixed in the Makefiles but manual 1899 intervention is needed to clean an objdir if you use NO_CLEAN: 1900 # find /usr/obj -name Kyuafile | xargs rm -f 1901 190220131213: 1903 The behavior of gss_pseudo_random() for the krb5 mechanism 1904 has changed, for applications requesting a longer random string 1905 than produced by the underlying enctype's pseudo-random() function. 1906 In particular, the random string produced from a session key of 1907 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 1908 be different at the 17th octet and later, after this change. 1909 The counter used in the PRF+ construction is now encoded as a 1910 big-endian integer in accordance with RFC 4402. 1911 __FreeBSD_version is bumped to 1100004. 1912 191320131108: 1914 The WITHOUT_ATF build knob has been removed and its functionality 1915 has been subsumed into the more generic WITHOUT_TESTS. If you were 1916 using the former to disable the build of the ATF libraries, you 1917 should change your settings to use the latter. 1918 191920131025: 1920 The default version of mtree is nmtree which is obtained from 1921 NetBSD. The output is generally the same, but may vary 1922 slightly. If you found you need identical output adding 1923 "-F freebsd9" to the command line should do the trick. For the 1924 time being, the old mtree is available as fmtree. 1925 192620131014: 1927 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 1928 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 1929 1.1.4_8 and verify bsdyml not linked in, before running "make 1930 delete-old-libs": 1931 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 1932 or 1933 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 1934 193520131010: 1936 The stable/10 branch has been created in subversion from head 1937 revision r256279. 1938 1939COMMON ITEMS: 1940 1941 General Notes 1942 ------------- 1943 Sometimes, obscure build problems are the result of environment 1944 poisoning. This can happen because the make utility reads its 1945 environment when searching for values for global variables. To run 1946 your build attempts in an "environmental clean room", prefix all make 1947 commands with 'env -i '. See the env(1) manual page for more details. 1948 Occasionally a build failure will occur with "make -j" due to a race 1949 condition. If this happens try building again without -j, and please 1950 report a bug if it happens consistently. 1951 1952 When upgrading from one major version to another it is generally best to 1953 upgrade to the latest code in the currently installed branch first, then 1954 do an upgrade to the new branch. This is the best-tested upgrade path, 1955 and has the highest probability of being successful. Please try this 1956 approach if you encounter problems with a major version upgrade. Since 1957 the stable 4.x branch point, one has generally been able to upgrade from 1958 anywhere in the most recent stable branch to head / current (or even the 1959 last couple of stable branches). See the top of this file when there's 1960 an exception. 1961 1962 When upgrading a live system, having a root shell around before 1963 installing anything can help undo problems. Not having a root shell 1964 around can lead to problems if pam has changed too much from your 1965 starting point to allow continued authentication after the upgrade. 1966 1967 This file should be read as a log of events. When a later event changes 1968 information of a prior event, the prior event should not be deleted. 1969 Instead, a pointer to the entry with the new information should be 1970 placed in the old entry. Readers of this file should also sanity check 1971 older entries before relying on them blindly. Authors of new entries 1972 should write them with this in mind. 1973 1974 ZFS notes 1975 --------- 1976 When upgrading the boot ZFS pool to a new version, always follow 1977 these two steps: 1978 1979 1.) recompile and reinstall the ZFS boot loader and boot block 1980 (this is part of "make buildworld" and "make installworld") 1981 1982 2.) update the ZFS boot block on your boot drive 1983 1984 The following example updates the ZFS boot block on the first 1985 partition (freebsd-boot) of a GPT partitioned drive ada0: 1986 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 1987 1988 Non-boot pools do not need these updates. 1989 1990 To build a kernel 1991 ----------------- 1992 If you are updating from a prior version of FreeBSD (even one just 1993 a few days old), you should follow this procedure. It is the most 1994 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1995 1996 make kernel-toolchain 1997 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1998 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1999 2000 To test a kernel once 2001 --------------------- 2002 If you just want to boot a kernel once (because you are not sure 2003 if it works, or if you want to boot a known bad kernel to provide 2004 debugging information) run 2005 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2006 nextboot -k testkernel 2007 2008 To rebuild everything and install it on the current system. 2009 ----------------------------------------------------------- 2010 # Note: sometimes if you are running current you gotta do more than 2011 # is listed here if you are upgrading from a really old current. 2012 2013 <make sure you have good level 0 dumps> 2014 make buildworld 2015 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2016 make installkernel KERNCONF=YOUR_KERNEL_HERE 2017 [1] 2018 <reboot in single user> [3] 2019 mergemaster -Fp [5] 2020 make installworld 2021 mergemaster -Fi [4] 2022 make delete-old [6] 2023 <reboot> 2024 2025 To cross-install current onto a separate partition 2026 -------------------------------------------------- 2027 # In this approach we use a separate partition to hold 2028 # current's root, 'usr', and 'var' directories. A partition 2029 # holding "/", "/usr" and "/var" should be about 2GB in 2030 # size. 2031 2032 <make sure you have good level 0 dumps> 2033 <boot into -stable> 2034 make buildworld 2035 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2036 <maybe newfs current's root partition> 2037 <mount current's root partition on directory ${CURRENT_ROOT}> 2038 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 2039 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2040 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2041 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2042 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2043 <reboot into current> 2044 <do a "native" rebuild/install as described in the previous section> 2045 <maybe install compatibility libraries from ports/misc/compat*> 2046 <reboot> 2047 2048 2049 To upgrade in-place from stable to current 2050 ---------------------------------------------- 2051 <make sure you have good level 0 dumps> 2052 make buildworld [9] 2053 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 2054 make installkernel KERNCONF=YOUR_KERNEL_HERE 2055 [1] 2056 <reboot in single user> [3] 2057 mergemaster -Fp [5] 2058 make installworld 2059 mergemaster -Fi [4] 2060 make delete-old [6] 2061 <reboot> 2062 2063 Make sure that you've read the UPDATING file to understand the 2064 tweaks to various things you need. At this point in the life 2065 cycle of current, things change often and you are on your own 2066 to cope. The defaults can also change, so please read ALL of 2067 the UPDATING entries. 2068 2069 Also, if you are tracking -current, you must be subscribed to 2070 freebsd-current@freebsd.org. Make sure that before you update 2071 your sources that you have read and understood all the recent 2072 messages there. If in doubt, please track -stable which has 2073 much fewer pitfalls. 2074 2075 [1] If you have third party modules, such as vmware, you 2076 should disable them at this point so they don't crash your 2077 system on reboot. 2078 2079 [3] From the bootblocks, boot -s, and then do 2080 fsck -p 2081 mount -u / 2082 mount -a 2083 sh /etc/rc.d/zfs start # mount zfs filesystem, if needed 2084 cd src # full path to source 2085 adjkerntz -i # if CMOS is wall time 2086 Also, when doing a major release upgrade, it is required that 2087 you boot into single user mode to do the installworld. 2088 2089 [4] Note: This step is non-optional. Failure to do this step 2090 can result in a significant reduction in the functionality of the 2091 system. Attempting to do it by hand is not recommended and those 2092 that pursue this avenue should read this file carefully, as well 2093 as the archives of freebsd-current and freebsd-hackers mailing lists 2094 for potential gotchas. The -U option is also useful to consider. 2095 See mergemaster(8) for more information. 2096 2097 [5] Usually this step is a no-op. However, from time to time 2098 you may need to do this if you get unknown user in the following 2099 step. It never hurts to do it all the time. You may need to 2100 install a new mergemaster (cd src/usr.sbin/mergemaster && make 2101 install) after the buildworld before this step if you last updated 2102 from current before 20130425 or from -stable before 20130430. 2103 2104 [6] This only deletes old files and directories. Old libraries 2105 can be deleted by "make delete-old-libs", but you have to make 2106 sure that no program is using those libraries anymore. 2107 2108 [8] The new kernel must be able to run existing binaries used by an 2109 installworld. When upgrading across major versions, the new kernel's 2110 configuration must include the correct COMPAT_FREEBSD<n> option for 2111 existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure 2112 to do so may leave you with a system that is hard to boot to recover. A 2113 GENERIC kernel will include suitable compatibility options to run 2114 binaries from older branches. Note that the ability to run binaries 2115 from unsupported branches is not guaranteed. 2116 2117 Make sure that you merge any new devices from GENERIC since the 2118 last time you updated your kernel config file. Options also 2119 change over time, so you may need to adjust your custom kernels 2120 for these as well. 2121 2122 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2123 "?=" instead of the "=" assignment operator, so that buildworld can 2124 override the CPUTYPE if it needs to. 2125 2126 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2127 not on the command line, or in /etc/make.conf. buildworld will 2128 warn if it is improperly defined. 2129FORMAT: 2130 2131This file contains a list, in reverse chronological order, of major 2132breakages in tracking -current. It is not guaranteed to be a complete 2133list of such breakages, and only contains entries since September 23, 2011. 2134If you need to see UPDATING entries from before that date, you will need 2135to fetch an UPDATING file from an older FreeBSD release. 2136 2137Copyright information: 2138 2139Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> 2140 2141Redistribution, publication, translation and use, with or without 2142modification, in full or in part, in any form or format of this 2143document are permitted without further permission from the author. 2144 2145THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2146IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2147WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2148DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2149INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2150(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2151SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2152HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2153STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2154IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2155POSSIBILITY OF SUCH DAMAGE. 2156 2157Contact Warner Losh if you have any questions about your use of 2158this document. 2159 2160$FreeBSD$ 2161