1Updating Information for users of FreeBSD-CURRENT. 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://docs.freebsd.org/en/books/handbook/cutting-edge/#makeworld 10 11Items affecting the ports and packages system can be found in 12/usr/ports/UPDATING. Please read that file before updating system packages 13and/or ports. 14 15NOTE TO PEOPLE WHO THINK THAT FreeBSD 16.x IS SLOW: 16 FreeBSD 16.x has many debugging features turned on, in both the kernel 17 and userland. These features attempt to detect incorrect use of 18 system primitives, and encourage loud failure through extra sanity 19 checking and fail stop semantics. They also substantially impact 20 system performance. If you want to do performance measurement, 21 benchmarking, and optimization, you'll want to turn them off. This 22 includes various WITNESS- related kernel options, INVARIANTS, malloc 23 debugging flags in userland, and various verbose features in the 24 kernel. Many developers choose to disable these features on build 25 machines to maximize performance. (To completely disable malloc 26 debugging, define WITH_MALLOC_PRODUCTION in /etc/src.conf and rebuild 27 world, or to merely disable the most expensive debugging functionality 28 at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) 29 3020250905: 31 FreeBSD 16.0-CURRENT. 32 3320250903: 34 The BLOAT_KERNEL_WITH_EXTERR kernel config option has been renamed to 35 EXTERR_STRINGS. 36 3720250827: 38 The names of pkg repositories defined in /etc/pkg/FreeBSD.conf have 39 changed: "FreeBSD" is now "FreeBSD-ports", and "FreeBSD-kmods" is now 40 "FreeBSD-ports-kmods". Users with /usr/local/etc/pkg/repos files 41 which override these will need to adjust their configuration to match 42 the new names. 43 4420250823: 45 The set of pkgbase packages for Kerberos and OpenSSL has changed. 46 After updating past 250e77d4f0a5, you should check 'pkg orphans' 47 and remove any orphaned packages, then examine the output of 48 'pkg install -r base -g FreeBSD-openssl\* FreeBSD-kerberos\*' 49 and install any new packages you need. 50 5120250823: 52 To restore bridge(4)'s ABI compatibility with ifconfig from 14.x or 53 earlier, the size of struct ifbreq has changed, so you must update 54 the kernel and /sbin/ifconfig at the same time or you will not be 55 able to add interfaces to bridge. This is particularly important 56 if you require bridge for network access during boot, in which case 57 you should install the new kernel and the new /sbin/ifconfig prior 58 to rebooting. 59 6020250820: 61 The WITHOUT_GSSAPI src.conf knob has been removed. This was already 62 a no-op for MIT Kerberos, so this only affects builds which set 63 WITHOUT_MITKRB5=1, in which case you now always get libgssapi. 64 65 Also, Heimdal's compile_et and libcom_err are now controlled by 66 WITHOUT_KERBEROS, not WITHOUT_KERBEROS_SUPPORT. This matches 67 the behaviour of the MIT Kerberos versions. 68 6920250820: 70 Commits 08c7dd2fbe4f and a4197ea47777 have changed the ABI between 71 libvmmapi and the vmm device. If using a custom kernel configuration, 72 please ensure that the COMPAT_FREEBSD14 option is included so older 73 versions of libvmmapi continue working as expected. 74 7520250819: 76 The CLEAN option has been switched back from default-on to default-off. 77 This reverts the 20250808 change below, which had reverted the 20240729 78 change before it. Note that some src.conf(5) options are known to break 79 ABI or compatibility in ways that may require a clean build initially 80 when switched. 81 8220250816: 83 Sendmail's libmilter has been moved to its own package. If you want 84 to compile applications that use libmilter, you should install the 85 FreeBSD-libmilter* packages. 86 87 If you only have FreeBSD-sendmail installed for applications that 88 require libmilter, you can now remove it. 89 9020250815: 91 The [gs]etgroups(2)syscalls have changed. To maintain backwards 92 compatibility with existing programs, you need COMPAT_FREEBSD14 in 93 your kernel config until all applications which use this are 94 rebuild/reinstalled. 95 9620250815: 97 jemalloc 5.3.0 has been committed to the tree. 98 9920250815: 100 The removal of Secure RPC DES authentication noted in 20250810 101 has been reverted. (However, it is still non-functional.) 102 10320250813: 104 Commit cce64f2e6851 changed the internal KAPI between the NFS 105 modules. As such, all of them need to be rebuilt from sources. 106 __FreeBSD_version has been bumped to 1500060 already today, 107 so I will not bump it again for this. 108 10920250813: 110 The gpiobus_attach_bus() function has been removed. Drivers should now 111 use the gpiobus_add_bus() function instead. The difference being that 112 gpiobus_add_bus() doesn't call bus_attach_children(), calling it will 113 be the responsibility of the caller now. 114 11520250810: 116 Support for Secure RPC DES authentication has been removed. 117 The keyserv(8) daemon was already removed, but support for it in libc 118 has also been removed, so if you somehow still had keyserv installed, 119 it will now stop working. There is no workaround for this. Removing 120 DES is considered a feature. 121 12220250808: 123 The CLEAN option has been switched back from default-off to 124 default-on. This reverts the 20240729 change below. 125 12620250807: 127 routed(8) and route6d(8) have moved to the FreeBSD-rip package. 128 If you use either of these, you should install the new package. 129 13020250806: 131 if_epair(4) now uses ether_gen_addr(9) to generate a stable MAC 132 address. 133 To keep using the random address, set the loader tunable 134 net.link.epair.ether_gen_addr=0. 135 13620250804: 137 bsdconfig (including sysrc(8)) has moved to the new bsdconfig 138 package. If you use pkgbase and wish to use bsdconfig, you should 139 install FreeBSD-bsdconfig. 140 14120250730: 142 The usbhid(4) USB HID driver is now enabled by default, and will be 143 used in preference to other USB HID drivers like ukbd(4), ums(4), and 144 uhid(4). Work on a FIDO/U2F driver and moused(8) is in progress. 145 The default is being switched now so that we can find and fix any 146 additional issues prior to FreeBSD 15.0. 147 148 To revert to the previous USB HID driver behavior, set the loader 149 tunable hw.usb.usbhid.enable=0. 150 15120250727: 152 bmake (i.e., /usr/bin/make and /usr/share/mk) has moved to a new 153 package, FreeBSD-bmake. If you use pkgbase and you need make, you 154 should install this package. 155 15620250726: 157 amd64 kernel configurations must contain "options SMP". 158 15920250725: 160 gssd(8) has been moved to a new package, FreeBSD-gssd. If you use 161 pkgbase and you need gssd, you should install this package. 162 16320250724: 164 The Kerberos packages which are built when WITH_MITKRB5 is enabled 165 have been renamed from FreeBSD-krb5* to FreeBSD-kerberos*. This 166 affects pkgbase users who manually enabled WITH_MITKRB5, *or* use 167 the default value of WITH_MITKRB5 and updated past c7da9fb90b0b 168 (20250721) which made WITH_MITKRB5 the default. 169 170 In either case, if you have FreeBSD-krb5* packages installed, you 171 should remove them and (re)install the equivalent FreeBSD-kerberos* 172 packages instead. 173 17420250721: 175 WITH_MITKRB5 is now enabled by default. MIT KRB5 has replaced 176 Heimdal in base. Ports that use USES=gssapi must be rebuilt. 177 A clean buildworld is required. 178 17920250719: 180 Commits 392a82b225 and c00baac0ab both changed the 181 internal API between the NFS modules. As such, all 182 these modules need to be rebuilt from sources. 183 __FreeBSD_version was bumped to 1500053 for this. 184 18520250710: 186 The shar(1) utility has been removed from base. The 187 sysutils/freebsd-shar port was created to maintain this version of 188 shar(1) past its removal from base. 189 19020250704: 191 LinuxKPI device.h and acpi changes effecting drivers and drm-kmod. 192 Bump __FreeBSD_version 1500050 to be able to detect these changes. 193 19420250630: 195 Commits 171f66b0c2ca and 8e2a90ac8089 changed the internal 196 api between nfscommon.ko and the other nfs modules. 197 Bump __FreeBSD_version to 1500049 for this. 198 All NFS related modules must be rebuilt from up-to-date 199 sources. 200 20120250625: 202 "make delete-old" will now remove the Forth bootloader entirely 203 if the system is built with WITHOUT_FORTH. 204 20520250614: 206 MIT KRB5 (MIT Kerberos5) has been imported into 15-CURRENT. To 207 and install MIT KRB5, add WITH_MITKRB5=yes to /etc/src.conf. This 208 will build and install MIT KRB5 1.21.3. And it will remove Heimdal 209 1.5.2 when delete-old and delete-old-libs are run. To revert back 210 simply buildworld/installworld again with delete-old-libs and 211 delete-old. 212 213 At the moment we only know of a couple of ports that might be 214 affected. Adjusting libmap.conf does not circumvent runtime issues. 215 The few affected ports must be rebuilt. A successful exp-run will be 216 run before MIT KRB5 becomes default. 217 218 Those using the KDC in FreeBSD base may wish to wait. The Heimdal 219 HDB is incompatible with the MIT KRB5 KDC. The migration procedure 220 is a little involved. 221 22220250603: 223 LinuxKPI dma-mapping.h were pulled into the tree from drm-kmod. 224 Bump _FreeBSD_version to 1500045 to be able to detect this change. 225 22620250527: 227 pf changed extension header handling. It now treats AH headers on IPv4 just 228 like AH headers on IPv6 and skips over them, allowing filtering on the inner 229 protocol. 230 23120250527: 232 pf now blocks IPv6 packets with a hop-by-hop or destination options header by 233 default. Such packets can be passed by adding "allow-opts" to the rule. IPv6 234 options are now handled just like their IPv4 counterparts. 235 23620250527: 237 The CAM target layer userland, i.e. ctld(8), ctladm(8) and ctlstat(8), 238 has moved to the new FreeBSD-ctl package. If you use pkgbase and you 239 need the CAM Target Layer, you should install the new package. 240 241 Development-related tools (e.g. ar and nm) have moved to the new 242 "FreeBSD-toolchain" package, which subsumes and obsoletes the 243 existing "FreeBSD-elftoolchain" package. If you use pkgbase and 244 need to compile software, you should install the new package and 245 ensure the old FreeBSD-elftoolchain* packages are completely removed. 246 24720250521: 248 Commit e64fe5ad3a23 removed in6_maxmtu and its setter in6_setmaxmtu(). 249 in6_maxmtu is used to store the max IPv6 MTU of all interfaces, 250 however it does not have any in-tree consumers since the introduction 251 from the KAME project. The removal should have little impact, and the 252 max IPv6 MTU can be easily retrieved by iterating over all the attached 253 interface if 3rd party modules need it. 254 25520250515: 256 Commit 772258c89f28 changed the internal API between the nfscommon 257 and nfscl modules. Both need to be built from updated sources. 258 25920250513: 260 The bridge(4) sysctl net.link.bridge.member_ifaddrs now defaults to 0, 261 meaning that interfaces added to a bridge may not have IP addresses 262 assigned. Refer to bridge(4) for more information. 263 26420250507: 265 UMASS quirks and auto-quirk probing has been overhauled. CAM now won't 266 send SYNCHRONIZE CACHE unless MODE PAGE 8 is present and valid. This 267 should allow more devices to work (since the auto quirk code was updated 268 in 14 and broke several e-readers and the like). Please send imp@freebsd.org 269 any regression reports. 270 27120250504: 272 Commit 9419e086e1a3 changed the internal API between the nfscommon 273 and nfscl modules. Both need to be built from updated sources. 274 27520250412: 276 LinuxKPI alloc routines were changed to return physically contiguous 277 memory where expected. These changes may require out-of-tree drivers 278 to be recompiled. 279 Bump __FreeBSD_version to 1500037 to be able to detect this change. 280 28120250409: 282 Intel iwlwifi firmware has been removed from the src repository. 283 Before updating their system, users of iwlwifi(4) or iwx(4) must 284 install the appropriate firmware for their chipset using fwget(8) or 285 building it from ports. 286 28720250314: 288 We now use LLVM's binary utilities (nm, objcopy, etc.) by default. 289 The WITHOUT_LLVM_BINUTILS src.conf(5) knob can be used to revert to 290 ELF Tool Chain tools if desired. 291 29220250303: 293 Commit 4a77657cbc01 changed the ABI between ipfw(8) and ipfw(4). 294 Please note that the old ipfw(8) binary will not work with the new 295 ipfw(4) module. Therefore, it is recommended to disable ipfw during 296 the upgrade, otherwise the host system may become inaccessible because 297 ipfw rules cannot be installed with the old binary. 298 29920250214: 300 Commit 4517fbfd4251 modified the internal API between the 301 nfscommon and nfscl modules. As such, both of these modules 302 need to be rebuilt from sources. 303 30420250201: 305 The NFS related daemons, that provide RPC services to the kernel: 306 gssd(8), rpcbind(8), rpc.tlsservd(8) and rpc.tlsclntd(8), now use a 307 different transport - netlink(4) socket instead of unix(4). Users of 308 NFS need to upgrade both kernel and world (binaries and libc) at once. 309 Also, any revision between 88cd1e17a7d8 and 99e5a70046da should be 310 avoided. 311 31220250129: 313 Defer the January 19, 2038 date limit in UFS1 filesystems to 314 February 7, 2106. This affects only UFS1 format filesystems. 315 See commit message 1111a44301da for details. 316 31720250127: 318 The Allwinner a10_timer driver has been renamed to aw_driver. If you 319 have a custom kernel configuration including the line 'device 320 a10_timer', it must be adjusted to 'device aw_timer'. The same applies 321 for device exclusions with 'nodevice'. 322 32320250106: 324 A new SOC_ROCKCHIP options appeared, so if you have a custom kernel configuration 325 targetting Rockchip SoC you need to add it so shared and mandatory drivers for 326 this SoC familly will be selected. 327 Also a new rk8xx device was added, this select the base driver for Rockchip PMIC. 328 32920241223: 330 The layout of NFS file handles for the tarfs, tmpfs, cd9660, and ext2fs 331 file systems has changed. An NFS server that exports any of these file 332 systems will need its clients to unmount and remount the exports. 333 33420241216: 335 The iwm(4) firmwares are no longer compiled as kernel modules but instead 336 shipped as raw files. For pkgbase users if you use iwm(4) you will need 337 to install the FreeBSD-firmware-iwm package. 338 33920241124: 340 The OpenBSD derived bc and dc implementations and the WITHOUT_GH_BC 341 option that allowed building them instead of the advanced version 342 imported more than 4 years ago have been removed. 343 34420241107: 345 The ng_ubt(4) driver now requires firmwares to be loaded on Realtek 346 adaptors with rtlbtfw(8) utility. It no longer attaches to devices 347 standing in bootloader mode. Firmware files are available in the 348 comms/rtlbt-firmware port. 349 35020241025: 351 The support for the rc_fast_and_loose variable has been removed from 352 rc.subr(8). Users setting rc_fast_and_loose on their systems are 353 advised to make sure their customizations to rc service scripts 354 do not depend on having a single shell environment shared across 355 all the rc service scripts during booting and shutdown. 356 35720241013: 358 The ciss driver was updated to cope better with hotplug events that 359 caused it to panic before, and to support more than 48 drives attached 360 to the card. These changes were made w/o benefit of hardware for testing 361 and ciss(4) users should be on the lookout for regressions. 362 36320240729: 364 The build now defaults to WITHOUT_CLEAN - i.e., no automatic clean 365 is performed at the beginning of buildworld or buildkernel. The 366 WITH_CLEAN src.conf(5) knob can be used to restore the previous 367 behaviour. 368 369 If you encounter incremental build issues, please report them to the 370 freebsd-current mailing list so that a special-case dependency can be 371 added, if necessary. 372 37320240715: 374 We now lean more heavily on ACPI enumeration for some traditional 375 devices. uart has moved from isa to acpi so the hints act as wiring 376 instead of device enumeration. Hints for parallel port, floppy, etc 377 have been removed. Before upgrading, grep your dmesg for lines like: 378 uart1: non-PNP ISA device will be removed from GENERIC in FreeBSD 15. 379 to see if you need to start including hints for the device on isa 380 in your loader.conf or device.hints file. APU1 (but not APU2) boards 381 are known to be affected, but there may be others. 382 38320240712: 384 Support for armv6 has been disconnected and is being removed. 385 38620240617: 387 ifconfig now treats IPv4 addresses without a width or mask as an error. 388 Specify the desired mask or width along with the IP address on the 389 ifconfig command line and in rc.conf. 390 39120240428: 392 OpenBSM auditing runtime (auditd, etc.) has been moved into the new 393 package FreeBSD-audit. If you use OpenBSM auditing and pkgbase, you 394 should install FreeBSD-audit. 395 39620240424: 397 cron, lpr, and ntpd have been moved from FreeBSD-utilities into their 398 own packages. If you use pkgbase, you should install the relevant 399 packages: FreeBSD-cron, FreeBSD-lp, or FreeBSD-ntp. 400 40120240406: 402 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 403 been upgraded to 18.1.6. It is important that you run `make delete-old` 404 as described in the COMMON ITEMS section, otherwise several libc++ 405 headers that are obsolete and need to be removed can cause compilation 406 errors in C++ programs. 407 40820240205: 409 For dynamically linked programs, system calls are now made from 410 libsys rather than libc. No change in linkage is required as 411 libsys is an auxiliary filter for libc. People building custom 412 images must ensure that libsys.so.7 is included. 413 41420240202: 415 Loader now also read configuration files listed in local_loader_conf_files. 416 Files listed here are the last ones read. And /boot/loader.conf.local was 417 moved from loader_conf_files to local_loader_conf_files leaving only 418 loader.conf and device.hints in loader_conf_files by default. 419 420 The following sequencing is applied: 421 422 1. Bootstrap: 423 /boot/defaults/loader.conf 424 425 2. Read loader_conf_files files: 426 /boot/device.hints 427 /boot/loader.conf 428 429 3. Read loader_conf_dirs files: 430 /boot/loader.conf.d/*.conf 431 432 4. And finally, rread local_loader_conf_files files: 433 /boot/loader.conf.local 434 43520240201: 436 sendmail 8.18.1 has been imported and merged. This version enforces 437 stricter RFC compliance by default, especially with respect to line 438 endings. This may cause issues with receiving messages from 439 non-compliant MTAs; please see the first 8.18.1 release note in 440 contrib/sendmail/RELEASE_NOTES for mitigations. 441 44220240111: 443 Commit cc760de2183f changed the internal interface between 444 the nfscommon and nfscl modules. As such, both need to be 445 rebuilt from sources. Therefore, __FreeBSD_version was 446 bumped to 1500010. 447 44820231120: 449 If you have an arm64 system that uses ACPI, you will need to update your 450 loader.efi in the ESP when you update past this point. Detection of ACPI 451 was moved earlier in the binary so the scripts could use it, but old 452 binaries don't have this, so we default to 'no ACPI' in this case. You can 453 undisable ACPI by doing 454 OK unset hint.acpi.0.disabled 455 This can also be used to recover any other system that was updated in the 456 small window where amd64 was also broken. 457 45820231113: 459 The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled 460 it is always installed as /usr/bin/ld. 461 46220231027: 463 Forward compatibility (running the new code on old kernels) for the 464 "ino64" project have been removed. The need for it has passed long ago. 465 46620231018: 467 Commit 57ce37f9dcd0 changed the internal KAPI between the 468 nfscommon and nfscl modules. Both must be rebuilt from sources. 469 47020231010: 471 dialog(1) has been replaced in base by bsddialog(1), while most of the 472 time replacing a dialog(1) call by a bsddialog(1) call works out of the 473 box, bsddialog(1) is not considered as a drop-in replacement for 474 dialog(1). 475 476 If you do depend on dialog(1) functionality, please install cdialog 477 from ports: 478 479 pkg install cdialog 480 48120230927: 482 The EARLY_AP_STARTUP kernel option is mandatory on x86. The option 483 has been added to DEFAULTS, so it should automatically be included in 484 custom kernel configurations without any additional change. 485 48620230922: 487 A new loader tunable net.pf.default_to_drop allows pf(4)’s default 488 behaviour to be changed from pass to drop. Previously this required 489 recompiling the kernel with the option PF_DEFAULT_TO_DROP. 490 49120230914: 492 Enable splitting out pkgbase manpages into separate packages by 493 default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf. 494 49520230911: 496 Move standard include files to the clibs-dev package and move clang 497 internal libraries and headers to clang and clang-dev. Upgrading systems 498 installed using pkgbase past this change involves extra steps to allow 499 for these file moves: 500 501 pkg upgrade -y FreeBSD-utilities 502 pkg upgrade -y FreeBSD-utilities-dev 503 pkg upgrade -y 504 50520230909: 506 Enable vnet sysctl variables to be loader tunable. SYSCTLs which 507 belongs to VNETs can be initialized during early boot or module 508 loading if they are marked with CTLFLAG_TUN and there are 509 corresponding kernel environment variables. 510 51120230901: 512 The WITH_INIT_ALL_PATTERN and WITH_INIT_ALL_ZERO build options have 513 been replaced by INIT_ALL=pattern and INIT_ALL=zero respectively. 514 51520230824: 516 FreeBSD 15.0-CURRENT. 517 51820230817: 519 Serial communication (in boot loaders, kernel, and userland) has 520 been changed to default to 115200 bps, in line with common industry 521 practice and typcial firmware serial console redirection 522 configuration. 523 524 Note that the early x86 BIOS bootloader (i.e., boot0sio) does not 525 support rates above 9600 bps and is not changed. boot0sio users may 526 set BOOT_COMCONSOLE_SPEED=9600 to use 9600 for all of the boot 527 components, or use the standard boot0 and have the boot2 stage start 528 with the serial port at 115200. 529 53020230807: 531 Following the general removal of MIPS support, the ath(4) AHB bus- 532 frontend has been removed, too, and building of the PCI support is 533 integrated with the ath(4) main module again. As a result, there's 534 no longer a need for if_ath_pci_load="YES" in /boot/loader.conf or 535 "device ath_pci" in the kernel configuration. 536 53720230803: 538 MAXCPU has been increased to 1024 in the amd64 GENERIC kernel config. 539 Out-of-tree kernel modules will need to be rebuilt. 540 54120230724: 542 CAM has been mechanically updated s/u_int(64|32|16|8)_t/uint\1_t/g 543 to move to the standard uintXX_t types from the old, traditional 544 BSD u_intXX_t types. This should be a NOP, but may cause problems 545 for out of tree changes. The SIMs were not updated since most of 546 the old u_intXX_t uses weren't due to CAM interfaces. 547 54820230713: 549 stable/14 branch created. 550 55120230629: 552 The heuristic for detecting old chromebooks with an EC bug that requires 553 atkbdc driver workarounds has changed. There should be no functional 554 change, but if your old chromebook's keyboard stops working, please 555 file a PR and assign it to imp. 556 55720230623: 558 OpenSSL has been updated to version 3.0, including changes throughout 559 the base system. It is important to rebuild third-party software 560 after upgrading. 561 56220230619: 563 To enable pf rdr rules for connections initiated from the host, pf 564 filter rules can be optionally enabled for packets delivered 565 locally. This can change the behavior of rules which match packets 566 delivered to lo0. To enable this feature: 567 568 sysctl net.pf.filter_local=1 569 service pf restart 570 571 When enabled, its best to ensure that packets delivered locally are not 572 filtered, e.g. by adding a 'skip on lo' rule. 573 57420230613: 575 Improvements to libtacplus(8) mean that tacplus.conf(5) now 576 follows POSIX shell syntax rules. This may cause TACACS+ 577 authentication to fail if the shared secret contains a single 578 quote, double quote, or backslash character which isn't 579 already properly quoted or escaped. 580 58120230612: 582 Belatedly switch the default nvme block device on x86 from nvd to nda. 583 nda created nvd compatibility links by default, so this should be a 584 nop. If this causes problems for your application, set hw.nvme.use_nvd=1 585 in your loader.conf or add `options NVME_USE_NVD=1` to your kernel 586 config. To disable the nvd compatibility aliases, add 587 kern.cam.nda.nvd_compat=0 to loader.conf. The default has been nda on 588 all non-x86 platforms for some time now. If you need to fall back, 589 please email imp@freebsd.org about why. 590 591 Encrypted swap partitions need to be changed from nvd to nda if you 592 migrate, or you need to use the above to switch back to nvd. 593 59420230422: 595 Remove portsnap(8). Users are encouraged to obtain the ports tree 596 using git instead. 597 59820230420: 599 Add jobs.mk to save typing. Enables -j${JOB_MAX} and logging 600 eg. 601 make buildworld-jobs 602 runs 603 make -j${JOB_MAX} buildworld > ../buildworld.log 2>&1 604 605 where JOB_MAX is derrived from ncpus in local.sys.mk if not set in env. 606 60720230316: 608 Video related devices for some arm devices have been renamed. 609 If you have a custom kernel config and want to use hdmi output on 610 IMX6 board you need to add "device dwc_hdmi" "device imx6_hdmi" and 611 "device imx6_ipu" to it. 612 If you have a custom kernel config and want to use hdmi output on 613 TI AM335X board you need to add "device tda19988" to it. 614 If you add "device hdmi" in it you need to remove it as it doesn't 615 exist anymore. 616 61720230221: 618 Introduce new kernel options KBD_DELAY1 and KBD_DELAY2. See atkbdc(4) 619 for details. 620 62120230206: 622 sshd now defaults to having X11Forwarding disabled, following upstream. 623 Administrators who wish to enable X11Forwarding should add 624 `X11Forwarding yes` to /etc/ssh/sshd_config. 625 62620230204: 627 Since commit 75d41cb6967 Huawei 3G/4G LTE Mobile Devices do not default 628 to ECM, but NCM mode and need u3g and ucom modules loaded. See cdce(4). 629 63020230130: 631 As of commit 7c40e2d5f685, the dependency on netlink(4) has been added 632 to the linux_common(4) module. Users relying on linux_common may need 633 to complile netlink(4) module if it is not present in their kernel. 634 63520230126: 636 The WITHOUT_CXX option has been removed. C++ components in the base 637 system are now built unconditionally. 638 63920230113: 640 LinuxKPI pci.h changes may require out-of-tree drivers to be recompiled. 641 Bump _FreeBSD_version to 1400078 to be able to detect this change. 642 64320221212: 644 llvm-objump is now always installed as objdump. Previously there was 645 no /usr/bin/objdump unless the WITH_LLVM_BINUTILS knob was used. 646 647 Some LLVM objdump options have a different output format compared to 648 GNU objdump; readelf is available for inspecting ELF files, and GNU 649 objdump is available from the devel/binutils port or package. 650 65120221205: 652 dma(8) has replaced sendmail(8) as the default mta. For people willing 653 to reenable sendmail(8): 654 655 $ cp /usr/share/examples/sendmail/mailer.conf /etc/mail/mailer.conf 656 657 and add sendmail_enable="YES" to rc.conf. 658 65920221204: 660 hw.bus.disable_failed_devices has changed from 'false' to 'true' by 661 default. Now if newbus succeeds in probing a device, but fails to attach 662 the device, we'll disable the device. In the past, we'd keep retrying 663 the device on each new driver loaded. To get that behavior now, one 664 needs to use devctl to re-enable the device, and reprobe it (or set 665 the sysctl/tunable hw.bus.disable_failed_devices=false). 666 667 NOTE: This was reverted 20221205 due to unexpected compatibility issues 668 66920221122: 670 pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'. 671 These configurations are no longer automatically reinterpreted as 672 'scrub fragment reassemble'. 673 67420221121: 675 The WITHOUT_CLANG_IS_CC option has been removed. When Clang is enabled 676 it is always installed as /usr/bin/cc (and c++, cpp). 677 67820221026: 679 Some programs have been moved into separate packages. It is recommended 680 for pkgbase users to do: 681 682 pkg install FreeBSD-dhclient FreeBSD-geom FreeBSD-resolvconf \ 683 FreeBSD-devd FreeBSD-devmatch 684 685 after upgrading to restore all the component that were previously 686 installed. 687 68820221002: 689 OPIE has been removed from the base system. If needed, it can 690 be installed from ports (security/opie) or packages (opie). 691 Otherwise, make sure that your PAM policies do not reference 692 pam_opie or pam_opieaccess. 693 69420220610: 695 LinuxKPI pm.h changes require an update to the latest drm-kmod version 696 before re-compiling to avoid errors. 697 69820211230: 699 The macros provided for the manipulation of CPU sets (e.g. CPU_AND) 700 have been modified to take 2 source arguments instead of only 1. 701 Externally maintained sources that use these macros will have to 702 be adapted. The FreeBSD version has been bumped to 1400046 to 703 reflect this change. 704 70520211214: 706 A number of the kernel include files are able to be included by 707 themselves. A test has been added to buildworld to enforce this. 708 70920211209: 710 Remove mips as a recognized target. This starts the decommissioning of 711 mips support in FreeBSD. mips related items will be removed wholesale in 712 the coming days and weeks. 713 714 This broke the NO_CLEAN build for some people. Either do a clean build 715 or touch 716 lib/clang/include/llvm/Config/Targets.def 717 lib/clang/include/llvm/Config/AsmParsers.def 718 lib/clang/include/llvm/Config/Disassemblers.def 719 lib/clang/include/llvm/Config/AsmPrinters.def 720 before the build to force everything to rebuild that needs to. 721 72220211202: 723 Unbound support for RFC8375: The special-use domain 'home.arpa' is 724 by default blocked. To unblock it use a local-zone nodefault 725 statement in unbound.conf: 726 local-zone: "home.arpa." nodefault 727 728 Or use another type of local-zone to override with your choice. 729 730 The reason for this is discussed in Section 6.1 of RFC8375: 731 Because 'home.arpa.' is not globally scoped and cannot be secured 732 using DNSSEC based on the root domain's trust anchor, there is no way 733 to tell, using a standard DNS query, in which homenet scope an answer 734 belongs. Consequently, users may experience surprising results with 735 such names when roaming to different homenets. 736 73720211110: 738 Commit b8d60729deef changed the TCP congestion control framework so 739 that any of the included congestion control modules could be 740 the single module built into the kernel. Previously newreno 741 was automatically built in through direct reference. As of 742 this commit you are required to declare at least one congestion 743 control module (e.g. 'options CC_NEWRENO') and to also declare a 744 default using the CC_DEFAULT option (e.g. options CC_DEFAULT="newreno\"). 745 The GENERIC configuration includes CC_NEWRENO and defines newreno 746 as the default. If no congestion control option is built into the 747 kernel and you are including networking, the kernel compile will 748 fail. Also if no default is declared the kernel compile will fail. 749 75020211118: 751 Mips has been removed from universe builds. It will be removed from the 752 tree shortly. 753 75420211106: 755 Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE. 756 The NFS modules must be rebuilt from sources and any out 757 of tree file systems that implement their own VOP_ALLOCATE 758 may need to be modified. 759 76020211022: 761 The synchronous PPP kernel driver sppp(4) has been removed. 762 The cp(4) and ce(4) drivers are now always compiled with netgraph(4) 763 support, formerly enabled by NETGRAPH_CRONYX option. 764 76520211020: 766 sh(1) is now the default shell for the root user. To force root to use 767 the csh shell, please run the following command as root: 768 769 # chsh -s csh 770 77120211004: 772 Ncurses distribution has been split between libtinfow and libncurses 773 with libncurses.so becoming a linker (ld) script to seamlessly link 774 to libtinfow as needed. Bump _FreeBSD_version to 1400035 to reflect 775 this change. 776 77720210923: 778 As of commit 8160a0f62be6, the dummynet module no longer depends on the 779 ipfw module. Dummynet can now be used by pf as well as ipfw. As such 780 users who relied on this dependency may need to include ipfw in the 781 list of modules to load on their systems. 782 78320210922: 784 As of commit 903873ce1560, the mixer(8) utility has got a slightly 785 new syntax. Please refer to the mixer(8) manual page for more 786 information. The old mixer utility can be installed from ports: 787 audio/freebsd-13-mixer 788 78920210911: 790 As of commit 55089ef4f8bb, the global variable nfs_maxcopyrange has 791 been deleted from the nfscommon.ko. As such, nfsd.ko must be built 792 from up to date sources to avoid an undefined reference when 793 being loaded. 794 79520210817: 796 As of commit 62ca9fc1ad56 OpenSSL no longer enables kernel TLS 797 by default. Users can enable kernel TLS via the "KTLS" SSL 798 option. This can be enabled globally by using a custom 799 OpenSSL config file via OPENSSL_CONF or via an 800 application-specific configuration option for applications 801 which permit setting SSL options via SSL_CONF_cmd(3). 802 80320210811: 804 Commit 3ad1e1c1ce20 changed the internal KAPI between the NFS 805 modules. Therefore, all need to be rebuilt from sources. 806 80720210730: 808 Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl. 809 As of be70c7a50d32 it is no longer used by userspace, but it does mean 810 users may not be able to enumerate pf states if they update the kernel 811 past b69019c14cd8 without first updating userspace past be70c7a50d32. 812 81320210729: 814 As of commit 01ad0c007964 if_bridge member interfaces can no longer 815 change their MTU. Changing the MTU of the bridge itself will change the 816 MTU on all member interfaces instead. 817 81820210716: 819 Commit ee29e6f31111 changed the internal KAPI between the nfscommon 820 and nfsd modules. Therefore, both need to be rebuilt from sources. 821 Bump __FreeBSD_version to 1400026 for this KAPI change. 822 82320210715: 824 The 20210707 awk update brought in a change in behavior. This has 825 been corrected as of d4d252c49976. Between these dates, if you 826 installed a new awk binary, you may not be able to build a new 827 kernel because the change in behavior affected the genoffset 828 script used to build the kernel. If you did update, the fix is 829 to update your sources past the above hash and do 830 % cd usr.bin/awk 831 % make clean all 832 % sudo -E make install 833 to enable building kernels again. 834 83520210708: 836 Commit 1e0a518d6548 changed the internal KAPI between the NFS 837 modules. They all need to be rebuilt from sources. I did not 838 bump __FreeBSD_version, since it was bumped recently. 839 84020210707: 841 awk has been updated to the latest one-true-awk version 20210215. 842 This contains a number of minor bug fixes. 843 84420210624: 845 The NFSv4 client now uses the highest minor version of NFSv4 846 supported by the NFSv4 server by default instead of minor version 0, 847 for NFSv4 mounts. 848 The "minorversion" mount option may be used to override this default. 849 85020210618: 851 Bump __FreeBSD_version to 1400024 for LinuxKPI changes. 852 Most notably netdev.h can change now as the (last) dependencies 853 (mlx4/ofed) are now using struct ifnet directly, but also for PCI 854 additions and others. 855 85620210618: 857 The directory "blacklisted" under /usr/share/certs/ has been 858 renamed to "untrusted". 859 86020210611: 861 svnlite has been removed from base. Should you need svn for any reason 862 please install the svn package or port. 863 86420210611: 865 Commit e1a907a25cfa changed the internal KAPI between the krpc 866 and nfsserver. As such, both modules must be rebuilt from 867 sources. Bump __FreeBSD_version to 1400022. 868 86920210610: 870 The an(4) driver has been removed from FreeBSD. 871 87220210608: 873 The vendor/openzfs branch was renamed to vendor/openzfs/legacy to 874 start tracking OpenZFS upstream more closely. Please see 875https://lists.freebsd.org/archives/freebsd-current/2021-June/000153.html 876 for details on how to correct any errors that might result. The 877 short version is that you need to remove the old branch locally: 878 git update-ref -d refs/remotes/freebsd/vendor/openzfs 879 (assuming your upstream origin is named 'freebsd'). 880 88120210525: 882 Commits 17accc08ae15 and de102f870501 add new files to LinuxKPI 883 which break drm-kmod. In addition various other additions where 884 committed. Bump __FreeBSD_version to 1400015 to be able to 885 detect this. 886 88720210513: 888 Commit ca179c4d74f2 changed the package in which the OpenSSL 889 libraries and utilities are packaged. 890 It is recommended for pkgbase user to do: 891 pkg install -f FreeBSD-openssl 892 before pkg upgrade otherwise some dependencies might not be met 893 and pkg will stop working as libssl will not be present anymore 894 on the system. 895 89620210426: 897 Commit 875977314881 changed the internal KAPI between 898 the nfsd and nfscommon modules. As such these modules 899 need to be rebuilt from sources. 900 Without this patch in your NFSv4.1/4.2 server, enabling 901 delegations by setting vfs.nfsd.issue_delegations non-zero 902 is not recommended. 903 90420210411: 905 Commit 7763814fc9c2 changed the internal KAPI between 906 the krpc and NFS. As such, the krpc, nfscommon and 907 nfscl modules must all be rebuilt from sources. 908 Without this patch, NFSv4.1/4.2 mounts should not 909 be done with the nfscbd(8) daemon running, to avoid 910 needing a working back channel for server->client RPCs. 911 91220210330: 913 Commit 01ae8969a9ee fixed the NFSv4.1/4.2 server so that it 914 handles binding of the back channel as required by RFC5661. 915 Until this patch is in your server, avoid use of the "nconnects" 916 mount option for Linux NFSv4.1/4.2 mounts. 917 91820210225: 919 For 64-bit architectures the base system is now built with Position 920 Independent Executable (PIE) support enabled by default. It may be 921 disabled using the WITHOUT_PIE knob. A clean build is required. 922 92320210128: 924 Various LinuxKPI functionality was added which conflicts with DRM. 925 Please update your drm-kmod port to after the __FreeBSD_version 1400003 926 update. 927 92820210121: 929 stable/13 branch created. 930 93120210108: 932 PC Card attachments for all devices have been removed. In the case of 933 wi and cmx, the entire drivers were removed because they were only 934 PC Card devices. FreeBSD_version 1300134 should be used for this 935 since it was bumped so recently. 936 93720210107: 938 Transport-independent parts of HID support have been split off the USB 939 code in to separate subsystem. Kernel configs which include one of 940 ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should 941 be updated with adding of "device hid" line. 942 94320210105: 944 ncurses installation has been modified to only keep the widechar 945 enabled version. Incremental build is broken for that change, so it 946 requires a clean build. 947 94820201223: 949 The FreeBSD project has migrated from Subversion to Git. Temporary 950 instructions can be found at 951 https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md 952 and other documents in that repo. 953 95420201216: 955 The services database has been updated to cover more of the basic 956 services expected in a modern system. The database is big enough 957 that it will cause issues in mergemaster in Releases previous to 958 12.2 and 11.3, or in very old current systems from before r358154. 959 96020201215: 961 Obsolete in-tree GDB 6.1.1 has been removed. GDB (including kgdb) 962 may be installed from ports or packages. 963 96420201124: 965 ping6 has been merged into ping. It can now be called as "ping -6". 966 See ping(8) for details. 967 96820201108: 969 Default value of net.add_addr_allfibs has been changed to 0. 970 If you have multi-fib configuration and rely on existence of all 971 interface routes in every fib, you need to set the above sysctl to 1. 972 97320201030: 974 The internal pre-processor in the calendar(1) program has been 975 extended to support more C pre-processor commands (e.g. #ifdef, #else, 976 and #undef) and to detect unbalanced conditional statements. 977 Error messages have been extended to include the filename and line 978 number if processing stops to help fixing malformed data files. 979 98020201026: 981 All the data files for the calendar(1) program, except calendar.freebsd, 982 have been moved to the deskutils/calendar-data port, much like the 983 jewish calendar entries were moved to deskutils/hebcal years ago. After 984 make delete-old-files, you need to install it to retain full 985 functionality. calendar(1) will issue a reminder for files it can't 986 find. 987 98820200923: 989 LINT files are no longer generated. We now include the relevant NOTES 990 files. Note: This may cause conflicts with updating in some cases. 991 find sys -name LINT\* -delete 992 is suggested across this commit to remove the generated LINT files. 993 994 If you have tried to update with generated files there, the svn 995 command you want to un-auger the tree is 996 cd sys/amd64/conf 997 svn revert -R . 998 and then do the above find from the top level. Substitute 'amd64' 999 above with where the error message indicates a conflict. 1000 100120200824: 1002 OpenZFS support has been integrated. Do not upgrade root pools until 1003 the loader is updated to support zstd. Furthermore, we caution against 1004 'zpool upgrade' for the next few weeks. The change should be transparent 1005 unless you want to use new features. 1006 1007 Not all "NO_CLEAN" build scenarios work across these changes. Many 1008 scenarios have been tested and fixed, but rebuilding kernels without 1009 rebuilding world may fail. 1010 1011 The ZFS cache file has moved from /boot to /etc to match the OpenZFS 1012 upstream default. A fallback to /boot has been added for mountroot. 1013 1014 Pool auto import behavior at boot has been moved from the kernel module 1015 to an explicit "zpool import -a" in one of the rc scripts enabled by 1016 zfs_enable=YES. This means your non-root zpools won't auto import until 1017 you upgrade your /etc/rc.d files. 1018 101920200824: 1020 The resume code now notifies devd with the 'kernel' system 1021 rather than the old 'kern' subsystem to be consistent with 1022 other use. The old notification will be created as well, but 1023 will be removed prior to FreeBSD 14.0. 1024 102520200821: 1026 r362275 changed the internal API between the kernel RPC and the 1027 NFS modules. As such, all the modules must be recompiled from 1028 sources. 1029 103020200817: 1031 r364330 modified the internal API used between the NFS modules. 1032 As such, all the NFS modules must be re-compiled from sources. 1033 103420200816: 1035 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1036 been upgraded to 11.0.0. Please see the 20141231 entry below for 1037 information about prerequisites and upgrading, if you are not already 1038 using clang 3.5.0 or higher. 1039 104020200810: 1041 r364092 modified the internal ABI used between the kernel NFS 1042 modules. As such, all of these modules need to be rebuilt 1043 from sources, so a version bump was done. 1044 104520200807: 1046 Makefile.inc has been updated to work around the issue documented in 1047 20200729. It was a case where the optimization of using symbolic links 1048 to point to binaries created a situation where we'd run new binaries 1049 with old libraries starting midway through the installworld process. 1050 105120200729: 1052 r363679 has redefined some undefined behavior in regcomp(3); notably, 1053 extraneous escapes of most ordinary characters will no longer be 1054 accepted. An exp-run has identified all of the problems with this in 1055 ports, but other non-ports software may need extra escapes removed to 1056 continue to function. 1057 1058 Because of this change, installworld may encounter the following error 1059 from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that 1060 you do not halt installworld. Instead, let it run to completion (whether 1061 successful or not) and run installworld once more. 1062 106320200627: 1064 A new implementation of bc and dc has been imported in r362681. This 1065 implementation corrects non-conformant behavior of the previous bc 1066 and adds GNU bc compatible options. It offers a number of extensions, 1067 is much faster on large values, and has support for message catalogs 1068 (a number of languages are already supported, contributions of further 1069 languages welcome). The option WITHOUT_GH_BC can be used to build the 1070 world with the previous versions of bc and dc. 1071 107220200625: 1073 r362639 changed the internal API used between the NFS kernel modules. 1074 As such, they all need to be rebuilt from sources. 1075 107620200613: 1077 r362158 changed the arguments for VFS_CHECKEXP(). As such, any 1078 out of tree file systems need to be modified and rebuilt. 1079 Also, any file systems that are modules must be rebuilt. 1080 108120200604: 1082 read(2) of a directory fd is now rejected by default. root may 1083 re-enable it for system root only on non-ZFS filesystems with the 1084 security.bsd.allow_read_dir sysctl(8) MIB if 1085 security.bsd.suser_enabled=1. 1086 1087 It may be advised to setup aliases for grep to default to `-d skip` if 1088 commonly non-recursively grepping a list that includes directories and 1089 the potential for the resulting stderr output is not tolerable. Example 1090 aliases are now installed, commented out, in /root/.cshrc and 1091 /root/.shrc. 1092 109320200523: 1094 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1095 been upgraded to 10.0.1. Please see the 20141231 entry below for 1096 information about prerequisites and upgrading, if you are not already 1097 using clang 3.5.0 or higher. 1098 109920200512: 1100 Support for obsolete compilers has been removed from the build system. 1101 Clang 6 and GCC 6.4 are the minimum supported versions. 1102 110320200424: 1104 closefrom(2) has been moved under COMPAT12, and replaced in libc with a 1105 stub that calls close_range(2). If using a custom kernel configuration, 1106 you may want to ensure that the COMPAT_FREEBSD12 option is included, as 1107 a slightly older -CURRENT userland and older FreeBSD userlands may not 1108 be functional without closefrom(2). 1109 111020200414: 1111 Upstream DTS from Linux 5.6 was merged and they now have the SID 1112 and THS (Secure ID controller and THermal Sensor) node present. 1113 The DTB overlays have now been removed from the tree for the H3/H5 and 1114 A64 SoCs and the aw_sid and aw_thermal driver have been updated to 1115 deal with upstream DTS. If you are using those overlays you need to 1116 remove them from loader.conf and update the DTBs on the FAT partition. 1117 111820200310: 1119 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1120 been upgraded to 10.0.0. Please see the 20141231 entry below for 1121 information about prerequisites and upgrading, if you are not already 1122 using clang 3.5.0 or higher. 1123 112420200309: 1125 The amd(8) automount daemon has been removed from the source tree. 1126 As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. 1127 amd is still available in the sysutils/am-utils port. 1128 112920200301: 1130 Removed brooktree driver (bktr.4) from the tree. 1131 113220200229: 1133 The WITH_GPL_DTC option has been removed. The BSD-licenced device tree 1134 compiler in usr.bin/dtc is used on all architectures which use dtc, and 1135 the GPL dtc is available (if needed) from the sysutils/dtc port. 1136 113720200229: 1138 The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind 1139 is used by all supported CPU architectures. 1140 114120200229: 1142 GCC 4.2.1 has been removed from the tree. The WITH_GCC, 1143 WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. 1144 Users who wish to build FreeBSD with GCC must use the external toolchain 1145 ports or packages. 1146 114720200220: 1148 ncurses has been updated to a newer version (6.2-20200215). Given the ABI 1149 has changed, users will have to rebuild all the ports that are linked to 1150 ncurses. 1151 115220200217: 1153 The size of struct vnet and the magic cookie have changed. 1154 Users need to recompile libkvm and all modules using VIMAGE 1155 together with their new kernel. 1156 115720200212: 1158 Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, 1159 NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update 1160 your Makefiles and scripts to define MK_<var>=no instead as required. 1161 1162 One exception to this is that program or library Makefiles should 1163 define MAN to empty rather than setting MK_MAN=no. 1164 116520200108: 1166 Clang/LLVM is now the default compiler and LLD the default 1167 linker for riscv64. 1168 116920200107: 1170 make universe no longer uses GCC 4.2.1 on any architectures. 1171 Architectures not supported by in-tree Clang/LLVM require an 1172 external toolchain package. 1173 117420200104: 1175 GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 1176 retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX 1177 options default to off for all supported CPU architectures. As a 1178 short-term transition aid they may be enabled via WITH_* options. 1179 GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. 1180 118120200102: 1182 Support for armv5 has been disconnected and is being removed. The 1183 machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. 1184 You must now use a MACHINE_ARCH of armv6 or armv7. The default 1185 MACHINE_ARCH for MACHINE=arm is now armv7. 1186 118720191226: 1188 Clang/LLVM is now the default compiler for all powerpc architectures. 1189 LLD is now the default linker for powerpc64. The change for powerpc64 1190 also includes a change to the ELFv2 ABI, incompatible with the existing 1191 ABI. 1192 119320191226: 1194 Kernel-loadable random(4) modules are no longer unloadable. 1195 119620191222: 1197 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1198 been upgraded to 9.0.1. Please see the 20141231 entry below for 1199 information about prerequisites and upgrading, if you are not already 1200 using clang 3.5.0 or higher. 1201 120220191212: 1203 r355677 has modified the internal interface used between the 1204 NFS modules in the kernel. As such, they must all be upgraded 1205 simultaneously. I will do a version bump for this. 1206 120720191205: 1208 The root certificates of the Mozilla CA Certificate Store have been 1209 imported into the base system and can be managed with the certctl(8) 1210 utility. If you have installed the security/ca_root_nss port or package 1211 with the ETCSYMLINK option (the default), be advised that there may be 1212 differences between those included in the port and those included in 1213 base due to differences in nss branch used as well as general update 1214 frequency. Note also that certctl(8) cannot manage certs in the 1215 format used by the security/ca_root_nss port. 1216 121720191120: 1218 The amd(8) automount daemon has been disabled by default, and will be 1219 removed in the future. As of FreeBSD 10.1 the autofs(5) is available 1220 for automounting. 1221 122220191107: 1223 The nctgpio and wbwd drivers have been moved to the superio bus. 1224 If you have one of these drivers in a kernel configuration, then 1225 you should add device superio to it. If you use one of these drivers 1226 as a module and you compile a custom set of modules, then you should 1227 add superio to the set. 1228 122920191021: 1230 KPIs for network drivers to access interface addresses have changed. 1231 Users need to recompile NIC driver modules together with kernel. 1232 123320191021: 1234 The net.link.tap.user_open sysctl no longer prevents user opening of 1235 already created /dev/tapNN devices. Access is still controlled by 1236 node permissions, just like tun devices. The net.link.tap.user_open 1237 sysctl is now used only to allow users to perform devfs cloning of 1238 tap devices, and the subsequent open may not succeed if the user is not 1239 in the appropriate group. This sysctl may be deprecated/removed 1240 completely in the future. 1241 124220191009: 1243 mips, powerpc, and sparc64 are no longer built as part of 1244 universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If 1245 not defined, mips, powerpc, and sparc64 builds will look for 1246 the xtoolchain binaries and if installed use them for universe 1247 builds. As llvm 9.0 becomes vetted for these architectures, they 1248 will be removed from the list. 1249 125020191009: 1251 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1252 been upgraded to 9.0.0. Please see the 20141231 entry below for 1253 information about prerequisites and upgrading, if you are not already 1254 using clang 3.5.0 or higher. 1255 125620191003: 1257 The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from 1258 GENERIC. They are available as modules and can be loaded by adding 1259 to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", 1260 hptnr_load="YES", or hptrr_load="YES", respectively. 1261 126220190913: 1263 ntpd no longer by default locks its pages in memory, allowing them 1264 to be paged out by the kernel. Use rlimit memlock to restore 1265 historic BSD behaviour. For example, add "rlimit memlock 32" 1266 to ntp.conf to lock up to 32 MB of ntpd address space in memory. 1267 126820190823: 1269 Several of ping6's options have been renamed for better consistency 1270 with ping. If you use any of -ARWXaghmrtwx, you must update your 1271 scripts. See ping6(8) for details. 1272 127320190727: 1274 The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls 1275 and the "-o sync_unmount" and "-o init_backgrounded" mount options have 1276 been removed from mount_fusefs(8). You can safely remove them from 1277 your scripts, because they had no effect. 1278 1279 The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, 1280 vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, 1281 vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate 1282 sysctls have been removed. If you felt the need to set any of them to 1283 a non-default value, please tell asomers@FreeBSD.org why. 1284 128520190713: 1286 Default permissions on the /var/account/acct file (and copies of it 1287 rotated by periodic daily scripts) are changed from 0644 to 0640 1288 because the file contains sensitive information that should not be 1289 world-readable. If the /var/account directory must be created by 1290 rc.d/accounting, the mode used is now 0750. Admins who use the 1291 accounting feature are encouraged to change the mode of an existing 1292 /var/account directory to 0750 or 0700. 1293 129420190620: 1295 Entropy collection and the /dev/random device are no longer optional 1296 components. The "device random" option has been removed. 1297 Implementations of distilling algorithms can still be made loadable 1298 with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). 1299 130020190612: 1301 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1302 been upgraded to 8.0.1. Please see the 20141231 entry below for 1303 information about prerequisites and upgrading, if you are not already 1304 using clang 3.5.0 or higher. 1305 130620190608: 1307 A fix was applied to i386 kernel modules to avoid panics with 1308 dpcpu or vnet. Users need to recompile i386 kernel modules 1309 having pcpu or vnet sections or they will refuse to load. 1310 131120190513: 1312 User-wired pages now have their own counter, 1313 vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed 1314 to vm.max_user_wired and changed from an unsigned int to an unsigned 1315 long. bhyve VMs wired with the -S are now subject to the user 1316 wiring limit; the vm.max_user_wired sysctl may need to be tuned to 1317 avoid running into the limit. 1318 131920190507: 1320 The IPSEC option has been removed from GENERIC. Users requiring 1321 ipsec(4) must now load the ipsec(4) kernel module. 1322 132320190507: 1324 The tap(4) driver has been folded into tun(4), and the module has been 1325 renamed to tuntap. You should update any kld_list="if_tap" or 1326 kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or 1327 if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap 1328 module instead, and "device tap" or "device tun" entries in kernel 1329 config files to select the tuntap device instead. 1330 133120190418: 1332 The following knobs have been added related to tradeoffs between 1333 safe use of the random device and availability in the absence of 1334 entropy: 1335 1336 kern.random.initial_seeding.bypass_before_seeding: tunable; set 1337 non-zero to bypass the random device prior to seeding, or zero to 1338 block random requests until the random device is initially seeded. 1339 For now, set to 1 (unsafe) by default to restore pre-r346250 boot 1340 availability properties. 1341 1342 kern.random.initial_seeding.read_random_bypassed_before_seeding: 1343 read-only diagnostic sysctl that is set when bypass is enabled and 1344 read_random(9) is bypassed, to enable programmatic handling of this 1345 initial condition, if desired. 1346 1347 kern.random.initial_seeding.arc4random_bypassed_before_seeding: 1348 Similar to the above, but for arc4random(9) initial seeding. 1349 1350 kern.random.initial_seeding.disable_bypass_warnings: tunable; set 1351 non-zero to disable warnings in dmesg when the same conditions are 1352 met as for the diagnostic sysctls above. Defaults to zero, i.e., 1353 produce warnings in dmesg when the conditions are met. 1354 135520190416: 1356 The loadable random module KPI has changed; the random_infra_init() 1357 routine now requires a 3rd function pointer for a bool (*)(void) 1358 method that returns true if the random device is seeded (and 1359 therefore unblocked). 1360 136120190404: 1362 r345895 reverts r320698. This implies that an nfsuserd(8) daemon 1363 built from head sources between r320757 (July 6, 2017) and 1364 r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" 1365 is added to the command line. 1366 nfsuserd daemons built from head sources that are post-r338192 are 1367 not affected and should continue to work. 1368 136920190320: 1370 The fuse(4) module has been renamed to fusefs(4) for consistency with 1371 other filesystems. You should update any kld_load="fuse" entries in 1372 /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and 1373 "options FUSE" entries in kernel config files. 1374 137520190304: 1376 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1377 8.0.0. Please see the 20141231 entry below for information about 1378 prerequisites and upgrading, if you are not already using clang 3.5.0 1379 or higher. 1380 138120190226: 1382 geom_uzip(4) depends on the new module xz. If geom_uzip is statically 1383 compiled into your custom kernel, add 'device xz' statement to the 1384 kernel config. 1385 138620190219: 1387 drm and drm2 have been removed from the tree. Please see 1388 https://wiki.freebsd.org/Graphics for the latest information on 1389 migrating to the drm ports. 1390 139120190131: 1392 Iflib is no longer unconditionally compiled into the kernel. Drivers 1393 using iflib and statically compiled into the kernel, now require 1394 the 'device iflib' config option. For the same drivers loaded as 1395 modules on kernels not having 'device iflib', the iflib.ko module 1396 is loaded automatically. 1397 139820190125: 1399 The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration 1400 options no longer exist since r343219 and r343427 respectively; 1401 nothing uses them, so they should be just removed from custom 1402 kernel config files. 1403 140420181230: 1405 r342635 changes the way efibootmgr(8) works by requiring users to add 1406 the -b (bootnum) parameter for commands where the bootnum was previously 1407 specified with each option. For example 'efibootmgr -B 0001' is now 1408 'efibootmgr -B -b 0001'. 1409 141020181220: 1411 r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport 1412 in the same as it is applied to NFSv2 and 3. This implies that NFSv4 1413 servers that have vfs.nfsd.nfs_privport set will only allow mounts 1414 from clients using a reserved port. Since both the FreeBSD and Linux 1415 NFSv4 clients use reserved ports by default, this should not affect 1416 most NFSv4 mounts. 1417 141820181219: 1419 The XLP config has been removed. We can't support 64-bit atomics in this 1420 kernel because it is running in 32-bit mode. XLP users must transition 1421 to running a 64-bit kernel (XLP64 or XLPN32). 1422 1423 The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is 1424 the preferred emulator today and we don't need two different ones. 1425 1426 The old sibyte / swarm / Broadcom BCM1250 support has been 1427 removed from the mips port. 1428 142920181211: 1430 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1431 7.0.1. Please see the 20141231 entry below for information about 1432 prerequisites and upgrading, if you are not already using clang 3.5.0 1433 or higher. 1434 143520181211: 1436 Remove the timed and netdate programs from the base tree. Setting 1437 the time with these daemons has been obsolete for over a decade. 1438 143920181126: 1440 On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld 1441 linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as 1442 it produces broken binaries when ifuncs are in use. Users needing 1443 GNU ld should install the binutils port or package. 1444 144520181123: 1446 The BSD crtbegin and crtend code has been enabled by default. It has 1447 had extensive testing on amd64, arm64, and i386. It can be disabled 1448 by building a world with -DWITHOUT_BSD_CRTBEGIN. 1449 145020181115: 1451 The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) 1452 has been converted to a port (misc/ctm) and will be removed from 1453 FreeBSD-13. It is available as a package (ctm) for all supported 1454 FreeBSD versions. 1455 145620181110: 1457 The default newsyslog.conf(5) file has been changed to only include 1458 files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if 1459 the filenames end in '.conf' and do not begin with a '.'. 1460 1461 You should check the configuration files in these two directories match 1462 this naming convention. You can verify which configuration files are 1463 being included using the command: 1464 $ newsyslog -Nrv 1465 146620181019: 1467 Stable/12 was branched created. 1468 146920181015: 1470 Ports for the DRM modules have been simplified. Now, amd64 users should 1471 just install the drm-kmod port. All others should install 1472 drm-legacy-kmod. 1473 1474 Graphics hardware that's newer than about 2010 usually works with 1475 drm-kmod. For hardware older than 2013, however, some users will need 1476 to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older 1477 than 2008 usually only works in drm-legacy-kmod. The graphics team can 1478 only commit to hardware made since 2013 due to the complexity of the 1479 market and difficulty to test all the older cards effectively. If you 1480 have hardware supported by drm-kmod, you are strongly encouraged to use 1481 that as you will get better support. 1482 1483 Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined 1484 elsewhere, the drm and drm2 modules will be eliminated from the src base 1485 soon (with a limited exception for arm). Please update to the package 1486 asap and report any issues to x11@freebsd.org. 1487 1488 Generally, anybody using the drm*-kmod packages should add 1489 WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty 1490 cross-threading surprises, especially with automatic driver 1491 loading from X11 startup. These will become the defaults in 13-current 1492 shortly. 1493 149420181012: 1495 The ixlv(4) driver has been renamed to iavf(4). As a consequence, 1496 custom kernel and module loading configuration files must be updated 1497 accordingly. Moreover, interfaces previous presented as ixlvN to the 1498 system are now exposed as iavfN and network configuration files must 1499 be adjusted as necessary. 1500 150120181009: 1502 OpenSSL has been updated to version 1.1.1. This update included 1503 additional various API changes throughout the base system. It is 1504 important to rebuild third-party software after upgrading. The value 1505 of __FreeBSD_version has been bumped accordingly. 1506 150720181006: 1508 The legacy DRM modules and drivers have now been added to the loader's 1509 module blacklist, in favor of loading them with kld_list in rc.conf(5). 1510 The module blacklist may be overridden with the loader.conf(5) 1511 'module_blacklist' variable, but loading them via rc.conf(5) is strongly 1512 encouraged. 1513 151420181002: 1515 The cam(4) based nda(4) driver will be used over nvd(4) by default on 1516 powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or 1517 loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing 1518 driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the 1519 nda device name. 1520 152120180913: 1522 Reproducible build mode is now on by default, in preparation for 1523 FreeBSD 12.0. This eliminates build metadata such as the user, 1524 host, and time from the kernel (and uname), unless the working tree 1525 corresponds to a modified checkout from a version control system. 1526 The previous behavior can be obtained by setting the /etc/src.conf 1527 knob WITHOUT_REPRODUCIBLE_BUILD. 1528 152920180826: 1530 The Yarrow CSPRNG has been removed from the kernel as it has not been 1531 supported by its designers since at least 2003. Fortuna has been the 1532 default since FreeBSD-11. 1533 153420180822: 1535 devctl freeze/thaw have gone into the tree, the rc scripts have been 1536 updated to use them and devmatch has been changed. You should update 1537 kernel, userland and rc scripts all at the same time. 1538 153920180818: 1540 The default interpreter has been switched from 4th to Lua. 1541 LOADER_DEFAULT_INTERP, documented in build(7), will override the default 1542 interpreter. If you have custom FORTH code you will need to set 1543 LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in 1544 src.conf for the build. This will create default hard links between 1545 loader and loader_4th instead of loader and loader_lua, the new default. 1546 If you are using UEFI it will create the proper hard link to loader.efi. 1547 1548 bhyve uses userboot.so. It remains 4th-only until some issues are solved 1549 regarding coexisting with multiple versions of FreeBSD are resolved. 1550 155120180815: 1552 ls(1) now respects the COLORTERM environment variable used in other 1553 systems and software to indicate that a colored terminal is both 1554 supported and desired. If ls(1) is suddenly emitting colors, they may 1555 be disabled again by either removing the unwanted COLORTERM from your 1556 environment, or using `ls --color=never`. The ls(1) specific CLICOLOR 1557 may not be observed in a future release. 1558 155920180808: 1560 The default pager for most commands has been changed to "less". To 1561 restore the old behavior, set PAGER="more" and MANPAGER="more -s" in 1562 your environment. 1563 156420180731: 1565 The jedec_ts(4) driver has been removed. A superset of its functionality 1566 is available in the jedec_dimm(4) driver, and the manpage for that 1567 driver includes migration instructions. If you have "device jedec_ts" 1568 in your kernel configuration file, it must be removed. 1569 157020180730: 1571 amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. 1572 This should have no effect if the kernel is booted via BIOS/legacy boot. 1573 EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system 1574 has a buggy firmware that prevents a successful boot due to use of 1575 runtime services. 1576 157720180727: 1578 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 1579 support has been removed from the tree. These ports were 1580 obsolete and/or known to be broken for many years. 1581 158220180723: 1583 loader.efi has been augmented to participate more fully in the 1584 UEFI boot manager protocol. loader.efi will now look at the 1585 BootXXXX environment variable to determine if a specific kernel 1586 or root partition was specified. XXXX is derived from BootCurrent. 1587 efibootmgr(8) manages these standard UEFI variables. 1588 158920180720: 1590 zfsloader's functionality has now been folded into loader. 1591 zfsloader is no longer necessary once you've updated your 1592 boot blocks. For a transition period, we will install a 1593 hardlink for zfsloader to loader to allow a smooth transition 1594 until the boot blocks can be updated (hard link because old 1595 zfs boot blocks don't understand symlinks). 1596 159720180719: 1598 ARM64 now have efifb support, if you want to have serial console 1599 on your arm64 board when an screen is connected and the bootloader 1600 setup a frame buffer for us to use, just add : 1601 boot_serial=YES 1602 boot_multicons=YES 1603 in /boot/loader.conf 1604 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 1605 an screen connected as the firmware will setup a frame buffer are that 1606 u-boot will expose as an EFI frame buffer. 1607 160820180719: 1609 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 1610 or take steps to update /etc/passwd before doing installworld on 1611 existing systems. Do not skip the "mergemaster -Fp" step before 1612 installworld, as described in the update procedures near the bottom 1613 of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 1614 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 1615 the ntp config file contain options that change file/dir locations. 1616 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 1617 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 1618 taking steps to ensure that all required files/dirs are accessible 1619 by the ntpd user. 1620 162120180717: 1622 Big endian arm support has been removed. 1623 162420180711: 1625 The static environment setup in kernel configs is no longer mutually 1626 exclusive with the loader(8) environment by default. In order to 1627 restore the previous default behavior of disabling the loader(8) 1628 environment if a static environment is present, you must specify 1629 loader_env.disabled=1 in the static environment. 1630 163120180705: 1632 The ABI of syscalls used by management tools like sockstat and 1633 netstat has been broken to allow 32-bit binaries to work on 1634 64-bit kernels without modification. These programs will need 1635 to match the kernel in order to function. External programs may 1636 require minor modifications to accommodate a change of type in 1637 structures from pointers to 64-bit virtual addresses. 1638 163920180702: 1640 On i386 and amd64 atomics are now inlined. Out of tree modules using 1641 atomics will need to be rebuilt. 1642 164320180701: 1644 The '%I' format in the kern.corefile sysctl limits the number of 1645 core files that a process can generate to the number stored in the 1646 debug.ncores sysctl. The '%I' format is replaced by the single digit 1647 index. Previously, if all indexes were taken the kernel would overwrite 1648 only a core file with the highest index in a filename. 1649 Currently the system will create a new core file if there is a free 1650 index or if all slots are taken it will overwrite the oldest one. 1651 165220180630: 1653 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1654 6.0.1. Please see the 20141231 entry below for information about 1655 prerequisites and upgrading, if you are not already using clang 3.5.0 1656 or higher. 1657 165820180628: 1659 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 1660 needed to be changed to work with it. This change was made with r335763 1661 and requires a mergemaster / etcupdate / etc to update the installed 1662 file. 1663 166420180612: 1665 r334930 changed the interface between the NFS modules, so they all 1666 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 1667 166820180530: 1669 As of r334391 lld is the default amd64 system linker; it is installed 1670 as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no 1671 longer necessary. 1672 167320180530: 1674 The kernel / userland interface for devinfo changed, so you'll 1675 need a new kernel and userland as a pair for it to work (rebuilding 1676 lib/libdevinfo is all that's required). devinfo and devmatch will 1677 not work, but everything else will when there's a mismatch. 1678 167920180523: 1680 The on-disk format for hwpmc callchain records has changed to include 1681 threadid corresponding to a given record. This changes the field offsets 1682 and thus requires that libpmcstat be rebuilt before using a kernel 1683 later than r334108. 1684 168520180517: 1686 The vxge(4) driver has been removed. This driver was introduced into 1687 HEAD one week before the Exar left the Ethernet market and is not 1688 known to be used. If you have device vxge in your kernel config file 1689 it must be removed. 1690 169120180510: 1692 The amd64 kernel now requires a ld that supports ifunc to produce a 1693 working kernel, either lld or a newer binutils. lld is built by default 1694 on amd64, and the 'buildkernel' target uses it automatically. However, 1695 it is not the default linker, so building the kernel the traditional 1696 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 1697 binutils port/package). lld will soon be default, and this requirement 1698 will go away. 1699 1700 NOTE: As of r334391 lld is the default system linker on amd64, and no 1701 workaround is necessary. 1702 170320180508: 1704 The nxge(4) driver has been removed. This driver was for PCI-X 10g 1705 cards made by s2io/Neterion. The company was acquired by Exar and 1706 no longer sells or supports Ethernet products. If you have device 1707 nxge in your kernel config file it must be removed. 1708 170920180504: 1710 The tz database (tzdb) has been updated to 2018e. This version more 1711 correctly models time stamps in time zones with negative DST such as 1712 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 1713 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 1714 time zone abbreviations and the tm_isdst flag. 1715 171620180502: 1717 The ixgb(4) driver has been removed. This driver was for an early and 1718 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 1719 quickly shifted to the long lived ixgbe family. If you have device 1720 ixgb in your kernel config file it must be removed. 1721 172220180501: 1723 The lmc(4) driver has been removed. This was a WAN interface 1724 card that was already reportedly rare in 2003, and had an ambiguous 1725 license. If you have device lmc in your kernel config file it must 1726 be removed. 1727 172820180413: 1729 Support for Arcnet networks has been removed. If you have device 1730 arcnet or device cm in your kernel config file they must be 1731 removed. 1732 173320180411: 1734 Support for FDDI networks has been removed. If you have device 1735 fddi or device fpa in your kernel config file they must be 1736 removed. 1737 173820180406: 1739 In addition to supporting RFC 3164 formatted messages, the 1740 syslogd(8) service is now capable of parsing RFC 5424 formatted 1741 log messages. The main benefit of using RFC 5424 is that clients 1742 may now send log messages with timestamps containing year numbers, 1743 microseconds and time zone offsets. 1744 1745 Similarly, the syslog(3) C library function has been altered to 1746 send RFC 5424 formatted messages to the local system logging 1747 daemon. On systems using syslogd(8), this change should have no 1748 negative impact, as long as syslogd(8) and the C library are 1749 updated at the same time. On systems using a different system 1750 logging daemon, it may be necessary to make configuration 1751 adjustments, depending on the software used. 1752 1753 When using syslog-ng, add the 'syslog-protocol' flag to local 1754 input sources to enable parsing of RFC 5424 formatted messages: 1755 1756 source src { 1757 unix-dgram("/var/run/log" flags(syslog-protocol)); 1758 } 1759 1760 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 1761 of the 'imuxsock' module to let messages be processed by the 1762 regular RFC 3164/5424 parsing pipeline: 1763 1764 module(load="imuxsock" SysSock.UseSpecialParser="off") 1765 1766 Do note that these changes only affect communication between local 1767 applications and syslogd(8). The format that syslogd(8) uses to 1768 store messages on disk or forward messages to other systems 1769 remains unchanged. syslogd(8) still uses RFC 3164 for these 1770 purposes. Options to customize this behaviour will be added in the 1771 future. Utilities that process log files stored in /var/log are 1772 thus expected to continue to function as before. 1773 1774 __FreeBSD_version has been incremented to 1200061 to denote this 1775 change. 1776 177720180328: 1778 Support for token ring networks has been removed. If you 1779 have "device token" in your kernel config you should remove 1780 it. No device drivers supported token ring. 1781 178220180323: 1783 makefs was modified to be able to tag ISO9660 El Torito boot catalog 1784 entries as EFI instead of overloading the i386 tag as done previously. 1785 The amd64 mkisoimages.sh script used to build amd64 ISO images for 1786 release was updated to use this. This may mean that makefs must be 1787 updated before "make cdrom" can be run in the release directory. This 1788 should be as simple as: 1789 1790 $ cd $SRCDIR/usr.sbin/makefs 1791 $ make depend all install 1792 179320180212: 1794 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 1795 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 1796 Co-existence for the transition period will come shortly. Booting is a 1797 complex environment and test coverage for Lua-enabled loaders has been 1798 thin, so it would be prudent to assume it might not work and make 1799 provisions for backup boot methods. 1800 180120180211: 1802 devmatch functionality has been turned on in devd. It will automatically 1803 load drivers for unattached devices. This may cause unexpected drivers 1804 to be loaded. Please report any problems to current@ and 1805 imp@freebsd.org. 1806 180720180114: 1808 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1809 6.0.0. Please see the 20141231 entry below for information about 1810 prerequisites and upgrading, if you are not already using clang 3.5.0 1811 or higher. 1812 181320180110: 1814 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 1815 This means it is used to link the kernel and userland libraries and 1816 executables, but is not yet installed as /usr/bin/ld by default. 1817 1818 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 1819 WITHOUT_LLD_BOOTSTRAP=yes 1820 182120180110: 1822 On i386, pmtimer has been removed. Its functionality has been folded 1823 into apm. It was a no-op on ACPI in current for a while now (but was 1824 still needed on i386 in FreeBSD 11 and earlier). Users may need to 1825 remove it from kernel config files. 1826 182720180104: 1828 The use of RSS hash from the network card aka flowid has been 1829 disabled by default for lagg(4) as it's currently incompatible with 1830 the lacp and loadbalance protocols. 1831 1832 This can be re-enabled by setting the following in loader.conf: 1833 net.link.lagg.default_use_flowid="1" 1834 183520180102: 1836 The SW_WATCHDOG option is no longer necessary to enable the 1837 hardclock-based software watchdog if no hardware watchdog is 1838 configured. As before, SW_WATCHDOG will cause the software 1839 watchdog to be enabled even if a hardware watchdog is configured. 1840 184120171215: 1842 r326887 fixes the issue described in the 20171214 UPDATING entry. 1843 r326888 flips the switch back to building GELI support always. 1844 184520171214: 1846 r362593 broke ZFS + GELI support for reasons unknown. However, 1847 it also broke ZFS support generally, so GELI has been turned off 1848 by default as the lesser evil in r326857. If you boot off ZFS and/or 1849 GELI, it might not be a good time to update. 1850 185120171125: 1852 PowerPC users must update loader(8) by rebuilding world before 1853 installing a new kernel, as the protocol connecting them has 1854 changed. Without the update, loader metadata will not be passed 1855 successfully to the kernel and users will have to enter their 1856 root partition at the kernel mountroot prompt to continue booting. 1857 Newer versions of loader can boot old kernels without issue. 1858 185920171110: 1860 The LOADER_FIREWIRE_SUPPORT build variable has been renamed to 1861 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 1862 to WITH/OUT_LOADER_GELI. 1863 186420171106: 1865 The naive and non-compliant support of posix_fallocate(2) in ZFS 1866 has been removed as of r325320. The system call now returns EINVAL 1867 when used on a ZFS file. Although the new behavior complies with the 1868 standard, some consumers are not prepared to cope with it. 1869 One known victim is lld prior to r325420. 1870 187120171102: 1872 Building in a FreeBSD src checkout will automatically create object 1873 directories now rather than store files in the current directory if 1874 'make obj' was not ran. Calling 'make obj' is no longer necessary. 1875 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 1876 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 1877 environment. 1878 187920171101: 1880 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 1881 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 1882 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 1883 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 1884 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 1885 The UNIFIED_OBJDIR option is a transitional feature that will be 1886 removed for 12.0 release; please migrate to the new format for any 1887 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 1888 than hardcoding paths. 1889 189020171028: 1891 The native-xtools target no longer installs the files by default to the 1892 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 1893 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 1894 189520171021: 1896 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 1897 options are changing from controlling the build if defined / undefined 1898 to controlling the build with explicit 'yes' or 'no' values. They will 1899 shift to WITH/WITHOUT options to match other options in the system. 1900 190120171010: 1902 libstand has turned into a private library for sys/boot use only. 1903 It is no longer supported as a public interface outside of sys/boot. 1904 190520171005: 1906 The arm port has split armv6 into armv6 and armv7. armv7 is now 1907 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 1908 and are running a kernel from before r324363, you will need to add 1909 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 1910 191120171003: 1912 When building multiple kernels using KERNCONF, non-existent KERNCONF 1913 files will produce an error and buildkernel will fail. Previously 1914 missing KERNCONF files silently failed giving no indication as to 1915 why, only to subsequently discover during installkernel that the 1916 desired kernel was never built in the first place. 1917 191820170912: 1919 The default serial number format for CTL LUNs has changed. This will 1920 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 1921 or iSCSI clients care about their LUNs' serial numbers. Users who 1922 require serial number stability should hardcode serial numbers in 1923 /etc/ctl.conf . 1924 192520170912: 1926 For 32-bit arm compiled for hard-float support, soft-floating point 1927 binaries now always get their shared libraries from 1928 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 1929 /usr/libsoft also existed). Only users with a hard-float ld.so, but 1930 soft-float everything else should be affected. 1931 193220170826: 1933 The geli password typed at boot is now hidden. To restore the previous 1934 behavior, see geli(8) for configuration options. 1935 193620170825: 1937 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 1938 sysctl values. Minor nit, but requires a rebuild of both world/kernel 1939 to complete. 1940 194120170814: 1942 "make check" behavior (made in ^/head@r295380) has been changed to 1943 execute from a limited sandbox, as opposed to executing from 1944 ${TESTSDIR}. 1945 1946 Behavioral changes: 1947 - The "beforecheck" and "aftercheck" targets are now specified. 1948 - ${CHECKDIR} (added in commit noted above) has been removed. 1949 - Legacy behavior can be enabled by setting 1950 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 1951 1952 If the limited sandbox mode is enabled, "make check" will execute 1953 "make distribution", then install, execute the tests, and clean up the 1954 sandbox if successful. 1955 1956 The "make distribution" and "make install" targets are typically run as 1957 root to set appropriate permissions and ownership at installation time. 1958 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 1959 environment if executing "make check" with limited sandbox mode using 1960 an unprivileged user. 1961 196220170808: 1963 Since the switch to GPT disk labels, fsck for UFS/FFS has been 1964 unable to automatically find alternate superblocks. As of r322297, 1965 the information needed to find alternate superblocks has been 1966 moved to the end of the area reserved for the boot block. 1967 Filesystems created with a newfs of this vintage or later 1968 will create the recovery information. If you have a filesystem 1969 created prior to this change and wish to have a recovery block 1970 created for your filesystem, you can do so by running fsck in 1971 foreground mode (i.e., do not use the -p or -y options). As it 1972 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 1973 to which you should answer yes. 1974 197520170728: 1976 As of r321665, an NFSv4 server configuration that services 1977 Kerberos mounts or clients that do not support the uid/gid in 1978 owner/owner_group string capability, must explicitly enable 1979 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 1980 machine's /etc/rc.conf file. 1981 198220170722: 1983 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 1984 Please see the 20141231 entry below for information about prerequisites 1985 and upgrading, if you are not already using clang 3.5.0 or higher. 1986 198720170701: 1988 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 1989 r-commands (rlogin, rsh, etc.) to be built with the base system. 1990 199120170625: 1992 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 1993 a very major ABI incompatible change, so users of FreeBSD/powerpc must 1994 be careful when performing source upgrades. It is best to run 1995 'make installworld' from an alternate root system, either a live 1996 CD/memory stick, or a temporary root partition. Additionally, all ports 1997 must be recompiled. powerpc64 is largely unaffected, except in the case 1998 of 32-bit compatibility. All 32-bit binaries will be affected. 1999 200020170623: 2001 Forward compatibility for the "ino64" project have been committed. This 2002 will allow most new binaries to run on older kernels in a limited 2003 fashion. This prevents many of the common foot-shooting actions in the 2004 upgrade as well as the limited ability to roll back the kernel across 2005 the ino64 upgrade. Complicated use cases may not work properly, though 2006 enough simpler ones work to allow recovery in most situations. 2007 200820170620: 2009 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 2010 if you require the GPL compiler. 2011 201220170619: 2013 Forward compatibility for the "ino64" project have been committed. This 2014 will allow most new binaries to run on older kernels in a limited 2015 fashion. This prevents many of the common foot-shooting actions in the 2016 upgrade as well as the limited ability to roll back the kernel across 2017 the ino64 upgrade. Complicated use cases may not work properly, though 2018 enough simpler ones work to allow recovery in most situations. 2019 202020170618: 2021 The internal ABI used for communication between the NFS kernel modules 2022 was changed by r320085, so __FreeBSD_version was bumped to 2023 ensure all the NFS related modules are updated together. 2024 202520170617: 2026 The ABI of struct event was changed by extending the data 2027 member to 64bit and adding ext fields. For upgrade, same 2028 precautions as for the entry 20170523 "ino64" must be 2029 followed. 2030 203120170531: 2032 The GNU roff toolchain has been removed from base. To render manpages 2033 which are not supported by mandoc(1), man(1) can fallback on GNU roff 2034 from ports (and recommends to install it). 2035 To render roff(7) documents, consider using GNU roff from ports or the 2036 heirloom doctools roff toolchain from ports via pkg install groff or 2037 via pkg install heirloom-doctools. 2038 203920170524: 2040 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 2041 smaller runtime footprint builds. This is useful for embedded systems 2042 which only require one chipset support. 2043 2044 If you load it as a module, make sure this is in /boot/loader.conf: 2045 2046 if_ath_load="YES" 2047 2048 This will load the HAL, all chip/RF backends and if_ath_pci. 2049 If you have if_ath_pci in /boot/loader.conf, ensure it is after 2050 if_ath or it will not load any HAL chipset support. 2051 2052 If you want to selectively load things (eg on cheaper ARM/MIPS 2053 platforms where RAM is at a premium) you should: 2054 2055 * load ath_hal 2056 * load the chip modules in question 2057 * load ath_rate, ath_dfs 2058 * load ath_main 2059 * load if_ath_pci and/or if_ath_ahb depending upon your particular 2060 bus bind type - this is where probe/attach is done. 2061 2062 For further comments/feedback, poke adrian@ . 2063 206420170523: 2065 The "ino64" 64-bit inode project has been committed, which extends 2066 a number of types to 64 bits. Upgrading in place requires care and 2067 adherence to the documented upgrade procedure. 2068 2069 If using a custom kernel configuration ensure that the 2070 COMPAT_FREEBSD11 option is included (as during the upgrade the 2071 system will be running the ino64 kernel with the existing world). 2072 2073 For the safest in-place upgrade begin by removing previous build 2074 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full 2075 procedure documented below under the heading "To rebuild everything and 2076 install it on the current system." Specifically, a reboot is required 2077 after installing the new kernel before installing world. While an 2078 installworld normally works by accident from multiuser after rebooting 2079 the proper kernel, there are many cases where this will fail across this 2080 upgrade and installworld from single user is required. 2081 208220170424: 2083 The NATM framework including the en(4), fatm(4), hatm(4), and 2084 patm(4) devices has been removed. Consumers should plan a 2085 migration before the end-of-life date for FreeBSD 11. 2086 208720170420: 2088 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 2089 diff has not been implemented, if those are needed a newer version of 2090 GNU diff is available via the diffutils package under the gdiff name. 2091 209220170413: 2093 As of r316810 for ipfilter, keep frags is no longer assumed when 2094 keep state is specified in a rule. r316810 aligns ipfilter with 2095 documentation in man pages separating keep frags from keep state. 2096 This allows keep state to be specified without forcing keep frags 2097 and allows keep frags to be specified independently of keep state. 2098 To maintain previous behaviour, also specify keep frags with 2099 keep state (as documented in ipf.conf.5). 2100 210120170407: 2102 arm64 builds now use the base system LLD 4.0.0 linker by default, 2103 instead of requiring that the aarch64-binutils port or package be 2104 installed. To continue using aarch64-binutils, set 2105 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 2106 210720170405: 2108 The UDP optimization in entry 20160818 that added the sysctl 2109 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 2110 packets will no longer be treated as L3 broadcast packets. 2111 211220170331: 2113 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 2114 use any explicitly assigned loopback address available in the jail 2115 instead of using the first assigned address of the jail. 2116 211720170329: 2118 The ctl.ko module no longer implements the iSCSI target frontend: 2119 cfiscsi.ko does instead. 2120 2121 If building cfiscsi.ko as a kernel module, the module can be loaded 2122 via one of the following methods: 2123 - `cfiscsi_load="YES"` in loader.conf(5). 2124 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 2125 - ctladm(8)/ctld(8), when compiled with iSCSI support 2126 (`WITH_ISCSI=yes` in src.conf(5)) 2127 2128 Please see cfiscsi(4) for more details. 2129 213020170316: 2131 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 2132 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 2133 same source (previously, the dependency of mmcsd.ko on mmc.ko was 2134 missing, but mmcsd.ko now will refuse to load if it is incompatible 2135 with mmc.ko). 2136 213720170315: 2138 The syntax of ipfw(8) named states was changed to avoid ambiguity. 2139 If you have used named states in the firewall rules, you need to modify 2140 them after installworld and before rebooting. Now named states must 2141 be prefixed with colon. 2142 214320170311: 2144 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 2145 removed as the userland we provide cannot use them. The KMS version 2146 (sys/dev/drm2) supports the same hardware. 2147 214820170302: 2149 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 2150 Please see the 20141231 entry below for information about prerequisites 2151 and upgrading, if you are not already using clang 3.5.0 or higher. 2152 215320170221: 2154 The code that provides support for ZFS .zfs/ directory functionality 2155 has been reimplemented. It's not possible now to create a snapshot 2156 by mkdir under .zfs/snapshot/. That should be the only user visible 2157 change. 2158 215920170216: 2160 EISA bus support has been removed. The WITH_EISA option is no longer 2161 valid. 2162 216320170215: 2164 MCA bus support has been removed. 2165 216620170127: 2167 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 2168 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 2169 217020170112: 2171 The EM_MULTIQUEUE kernel configuration option is deprecated now that 2172 the em(4) driver conforms to iflib specifications. 2173 217420170109: 2175 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 2176 IFLIB. If you have a custom kernel configuration that excludes em(4) 2177 but you use igb(4), you need to re-add em(4) to your custom 2178 configuration. 2179 218020161217: 2181 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 2182 Please see the 20141231 entry below for information about prerequisites 2183 and upgrading, if you are not already using clang 3.5.0 or higher. 2184 218520161124: 2186 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 2187 Please see the 20141231 entry below for information about prerequisites 2188 and upgrading, if you are not already using clang 3.5.0 or higher. 2189 219020161119: 2191 The layout of the pmap structure has changed for powerpc to put the pmap 2192 statistics at the front for all CPU variations. libkvm(3) and all tools 2193 that link against it need to be recompiled. 2194 219520161030: 2196 isl(4) and cyapa(4) drivers now require a new driver, 2197 chromebook_platform(4), to work properly on Chromebook-class hardware. 2198 On other types of hardware the drivers may need to be configured using 2199 device hints. Please see the corresponding manual pages for details. 2200 220120161017: 2202 The urtwn(4) driver was merged into rtwn(4) and now consists of 2203 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 2204 parts. 2205 Also, firmware for RTL8188CE was renamed due to possible name 2206 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 2207 220820161015: 2209 GNU rcs has been removed from base. It is available as packages: 2210 - rcs: Latest GPLv3 GNU rcs version. 2211 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 2212 removed from base. 2213 221420161008: 2215 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 2216 modules now requires that the kernel configuration contain the 2217 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 2218 221920161003: 2220 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 2221 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 2222 222320160924: 2224 Relocatable object files with the extension of .So have been renamed 2225 to use an extension of .pico instead. The purpose of this change is 2226 to avoid a name clash with shared libraries on case-insensitive file 2227 systems. On those file systems, foo.So is the same file as foo.so. 2228 222920160918: 2230 GNU rcs has been turned off by default. It can (temporarily) be built 2231 again by adding WITH_RCS knob in src.conf. 2232 Otherwise, GNU rcs is available from packages: 2233 - rcs: Latest GPLv3 GNU rcs version. 2234 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 2235 223620160918: 2237 The backup_uses_rcs functionality has been removed from rc.subr. 2238 223920160908: 2240 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 2241 two separate components, QUEUE_MACRO_DEBUG_TRACE and 2242 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 2243 QUEUE_MACRO_DEBUG behavior. 2244 224520160824: 2246 r304787 changed some ioctl interfaces between the iSCSI userspace 2247 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 2248 rebuilt to work with new kernels. __FreeBSD_version has been bumped 2249 to 1200005. 2250 225120160818: 2252 The UDP receive code has been updated to only treat incoming UDP 2253 packets that were addressed to an L2 broadcast address as L3 2254 broadcast packets. It is not expected that this will affect any 2255 standards-conforming UDP application. The new behaviour can be 2256 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 2257 0. 2258 225920160818: 2260 Remove the openbsd_poll system call. 2261 __FreeBSD_version has been bumped because of this. 2262 226320160708: 2264 The stable/11 branch has been created from head@r302406. 2265 2266After branch N is created, entries older than the N-2 branch point are removed 2267from this file. After stable/14 is branched and current becomes FreeBSD 15, 2268entries older than stable/12 branch point will be removed from current's 2269UPDATING file. 2270 2271COMMON ITEMS: 2272 2273 General Notes 2274 ------------- 2275 Sometimes, obscure build problems are the result of environment 2276 poisoning. This can happen because the make utility reads its 2277 environment when searching for values for global variables. To run 2278 your build attempts in an "environmental clean room", prefix all make 2279 commands with 'env -i '. See the env(1) manual page for more details. 2280 Occasionally a build failure will occur with "make -j" due to a race 2281 condition. If this happens try building again without -j, and please 2282 report a bug if it happens consistently. 2283 2284 When upgrading from one major version to another it is generally best to 2285 upgrade to the latest code in the currently installed branch first, then 2286 do an upgrade to the new branch. This is the best-tested upgrade path, 2287 and has the highest probability of being successful. Please try this 2288 approach if you encounter problems with a major version upgrade. Since 2289 the stable 4.x branch point, one has generally been able to upgrade from 2290 anywhere in the most recent stable branch to head / current (or even the 2291 last couple of stable branches). See the top of this file when there's 2292 an exception. 2293 2294 The update process will emit an error on an attempt to perform a build 2295 or install from a FreeBSD version below the earliest supported version. 2296 When updating from an older version the update should be performed one 2297 major release at a time, including running `make delete-old` at each 2298 step. 2299 2300 When upgrading a live system, having a root shell around before 2301 installing anything can help undo problems. Not having a root shell 2302 around can lead to problems if pam has changed too much from your 2303 starting point to allow continued authentication after the upgrade. 2304 2305 This file should be read as a log of events. When a later event changes 2306 information of a prior event, the prior event should not be deleted. 2307 Instead, a pointer to the entry with the new information should be 2308 placed in the old entry. Readers of this file should also sanity check 2309 older entries before relying on them blindly. Authors of new entries 2310 should write them with this in mind. 2311 2312 ZFS notes 2313 --------- 2314 When upgrading the boot ZFS pool to a new version (via zpool upgrade), 2315 always follow these three steps: 2316 2317 1) recompile and reinstall the ZFS boot loader and boot block 2318 (this is part of "make buildworld" and "make installworld") 2319 2320 2) update the ZFS boot block on your boot drive (only required when 2321 doing a zpool upgrade): 2322 2323 When booting on x86 via BIOS, use the following to update the ZFS boot 2324 block on the freebsd-boot partition of a GPT partitioned drive ada0: 2325 gpart bootcode -p /boot/gptzfsboot -i $N ada0 2326 The value $N will typically be 1. For EFI booting, see EFI notes. 2327 2328 3) zpool upgrade the root pool. New bootblocks will work with old 2329 pools, but not vice versa, so they need to be updated before any 2330 zpool upgrade. 2331 2332 Non-boot pools do not need these updates. 2333 2334 EFI notes 2335 --------- 2336 2337 There are two locations the boot loader can be installed into. The 2338 current location (and the default) is \efi\freebsd\loader.efi and using 2339 efibootmgr(8) to configure it. The old location, that must be used on 2340 deficient systems that don't honor efibootmgr(8) protocols, is the 2341 fallback location of \EFI\BOOT\BOOTxxx.EFI. Generally, you will copy 2342 /boot/loader.efi to this location, but on systems installed a long time 2343 ago the ESP may be too small and /boot/boot1.efi may be needed unless 2344 the ESP has been expanded in the meantime. 2345 2346 Recent systems will have the ESP mounted on /boot/efi, but older ones 2347 may not have it mounted at all, or mounted in a different 2348 location. Older arm SD images with MBR used /boot/msdos as the 2349 mountpoint. The ESP is a MSDOS filesystem. 2350 2351 The EFI boot loader rarely needs to be updated. For ZFS booting, 2352 however, you must update loader.efi before you do 'zpool upgrade' the 2353 root zpool, otherwise the old loader.efi may reject the upgraded zpool 2354 since it does not automatically understand some new features. 2355 2356 See loader.efi(8) and uefi(8) for more details. 2357 2358 To build a kernel 2359 ----------------- 2360 If you are updating from a prior version of FreeBSD (even one just 2361 a few days old), you should follow this procedure. It is the most 2362 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2363 2364 make kernel-toolchain 2365 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2366 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 2367 2368 If you are running kernel modules from ports, see FOOTNOTE [1]. 2369 2370 To test a kernel once 2371 --------------------- 2372 If you just want to boot a kernel once (because you are not sure 2373 if it works, or if you want to boot a known bad kernel to provide 2374 debugging information) run 2375 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2376 nextboot -k testkernel 2377 2378 To rebuild everything and install it on the current system. 2379 ----------------------------------------------------------- 2380 # Note: sometimes if you are running current you gotta do more than 2381 # is listed here if you are upgrading from a really old current. 2382 2383 <make sure you have good level 0 dumps> [2] 2384 make buildworld 2385 <make sure any needed PORTS_MODULES are set> [1] 2386 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2387 make installkernel KERNCONF=YOUR_KERNEL_HERE 2388 <reboot in single user> [3] 2389 etcupdate -p [5] 2390 make installworld 2391 etcupdate -B [4] 2392 make delete-old [6] 2393 <reboot> 2394 2395 To cross-install current onto a separate partition 2396 -------------------------------------------------- 2397 # In this approach we use a separate partition to hold 2398 # current's root, 'usr', and 'var' directories. A partition 2399 # holding "/", "/usr" and "/var" should be about 2GB in 2400 # size. 2401 2402 <make sure you have good level 0 dumps> 2403 <boot into -stable> 2404 make buildworld 2405 make buildkernel KERNCONF=YOUR_KERNEL_HERE [1] 2406 <maybe newfs current's root partition> 2407 <mount current's root partition on directory ${CURRENT_ROOT}> 2408 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 2409 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2410 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2411 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2412 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2413 <reboot into current> 2414 <do a "native" rebuild/install as described in the previous section> 2415 <maybe install compatibility libraries from ports/misc/compat*> 2416 <reboot> 2417 2418 2419 To upgrade in-place from stable to current 2420 ---------------------------------------------- 2421 <make sure you have good level 0 dumps> [2] 2422 make buildworld [9] 2423 <make sure any needed PORTS_MODULES are set> [1] 2424 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 2425 make installkernel KERNCONF=YOUR_KERNEL_HERE 2426 <reboot in single user> [3] 2427 etcupdate -p [5] 2428 make installworld 2429 etcupdate -B [4] 2430 make delete-old [6] 2431 <reboot> 2432 2433 Make sure that you've read the UPDATING file to understand the 2434 tweaks to various things you need. At this point in the life 2435 cycle of current, things change often and you are on your own 2436 to cope. The defaults can also change, so please read ALL of 2437 the UPDATING entries. 2438 2439 Also, if you are tracking -current, you must be subscribed to 2440 freebsd-current@freebsd.org. Make sure that before you update 2441 your sources that you have read and understood all the recent 2442 messages there. If in doubt, please track -stable which has 2443 much fewer pitfalls. 2444 2445FOOTNOTES: 2446 2447 [1] If you have third party modules, such as drm-kmod or vmware, you 2448 should disable them at this point so they don't crash your system on 2449 reboot. Alternatively, you should rebuild all the modules you have in 2450 your system and install them as well. If you are running -current, you 2451 should seriously consider placing all sources to all the modules for 2452 your system (or symlinks to them) in /usr/local/sys/modules so this 2453 happens automatically. If all your modules come from ports, then adding 2454 the port origin directories to PORTS_MODULES instead is also automatic 2455 and effective, eg: 2456 PORTS_MODULES+=graphics/drm-kmod graphics/nvidia-drm-kmod 2457 2458 [2] To make complete dumps on zfs(4), use bectl(8), which 2459 creates bootable snapshots of configurable depth that are 2460 selectable via the bootloader. For ufs(4), use dump(8) and 2461 restore(8). 2462 2463 [3] From the bootblocks, boot -s, and then do 2464 fsck -p 2465 mount -u / 2466 mount -a 2467 sh /etc/rc.d/zfs start # mount zfs filesystem, if needed 2468 cd src # full path to source 2469 adjkerntz -i # if CMOS is wall time 2470 Also, when doing a major release upgrade, it is required that you boot 2471 into single user mode to do the installworld. 2472 2473 [4] Note: This step is non-optional. Failure to do this step 2474 can result in a significant reduction in the functionality of the 2475 system. Attempting to do it by hand is not recommended and those 2476 that pursue this avenue should read this file carefully, as well 2477 as the archives of freebsd-current and freebsd-hackers mailing lists 2478 for potential gotchas. See etcupdate(8) for more information. 2479 2480 [5] Usually this step is a no-op. However, from time to time 2481 you may need to do this if you get unknown user in the following 2482 step. 2483 2484 [6] This only deletes old files and directories. Old libraries 2485 can be deleted by "make delete-old-libs", but you have to make 2486 sure that no program is using those libraries anymore. 2487 2488 [8] The new kernel must be able to run existing binaries used by an 2489 installworld. When upgrading across major versions, the new kernel's 2490 configuration must include the correct COMPAT_FREEBSD<n> option for 2491 existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure 2492 to do so may leave you with a system that is hard to boot to recover. A 2493 GENERIC kernel will include suitable compatibility options to run 2494 binaries from older branches. Note that the ability to run binaries 2495 from unsupported branches is not guaranteed. 2496 2497 Make sure that you merge any new devices from GENERIC since the 2498 last time you updated your kernel config file. Options also 2499 change over time, so you may need to adjust your custom kernels 2500 for these as well. 2501 2502 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2503 "?=" instead of the "=" assignment operator, so that buildworld can 2504 override the CPUTYPE if it needs to. 2505 2506 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2507 not on the command line, or in /etc/make.conf. buildworld will 2508 warn if it is improperly defined. 2509FORMAT: 2510 2511This file contains a list, in reverse chronological order, of major 2512breakages in tracking -current. It is not guaranteed to be a complete 2513list of such breakages, and only contains entries since September 23, 2011. 2514If you need to see UPDATING entries from before that date, you will need 2515to fetch an UPDATING file from an older FreeBSD release. 2516 2517Copyright information: 2518 2519Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> 2520 2521Redistribution, publication, translation and use, with or without 2522modification, in full or in part, in any form or format of this 2523document are permitted without further permission from the author. 2524 2525THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2526IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2527WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2528DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2529INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2530(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2531SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2532HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2533STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2534IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2535POSSIBILITY OF SUCH DAMAGE. 2536 2537Contact Warner Losh if you have any questions about your use of 2538this document. 2539