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 3020251102: 31 Commit e5aa60d06958 changed the internal KAPI between 32 the NFS modules. As such, they all need to be rebuilt 33 from sources. __FreeBSD_version was bumped to 1600004 for this. 34 3520251025: 36 flua(1) has moved to the new FreeBSD-flua package. If you use flua, 37 you may want to install this package if it's not otherwise installed 38 as a dependency of something else. This change only affects pkgbase 39 users. 40 4120251021: 42 Bump __FreeBSD_version to 1600002 for LinuxKPI. An embedded struct 43 has changed size and might possibly be an issue otherwise. 44 4520251016: 46 With the migration to OpenZFS in FreeBSD 13.x a number of ZFS sysctls 47 moved to new locations, but backwards compatibility aliases were 48 provided. These aliases will be removed in the near future. Please 49 update /etc/sysctl.conf to reference the new OIDs. For example, 50 51 vfs.zfs.min_auto_ashift=12 52 53 needs to be changed to 54 55 vfs.zfs.vdev.min_auto_ashift=12 56 5720251015: 58 The "FreeBSD-unbound" package is renamed to "FreeBSD-local-unbound". 59 If you have set-optional or set-base installed, the new package will 60 be installed automatically, otherwise you should manually install the 61 new package and remove the old one. 62 63 This change only affects pkgbase users. 64 6520251012: 66 Blacklist has been renamed upstream to Blocklist. If you have it 67 configured, rename all configuration files, firewall anchors or 68 sentinel files to reflect the new nomenclature. Old setups will 69 continue to work emitting a warning. 70 7120251002: 72 Audio-related utilities including mixer(8) and virtual_oss(8) have 73 moved to the new FreeBSD-sound package. If you have set-optional or 74 set-base installed this package will be installed automatically, 75 otherwise you should install it manually if you need these utilities. 76 7720250929: 78 Both drm-kmod and nividia-drm ports had to be updated to either no 79 longer conflict on LinuxKPI vs. native PCI changes and/or to keep 80 working after some LinuxKPI PCI adjustments which were previously 81 hidden behind native PCI. 82 Bump __FreeBSD_version 1600001 so users will pick up updated packages. 83 8420250929: 85 The deprecated ftpd(8) has been removed. Users who still need ftpd 86 can install the ftp/freebsd-ftpd port. pkgbase users should remove 87 the orphaned FreeBSD-ftpd package. 88 8920250923: 90 Several changes which affect pkgbase users (only): 91 92 powerd has been moved to a new FreeBSD-powerd package. If you have 93 FreeBSD-set-minimal installed, the new package will be installed 94 automatically, otherwise you may want to install it by hand. 95 96 libpmc and related utilities (/usr/sbin/pmc*) have moved to the new 97 FreeBSD-pmc package. If you use these, you may want to install the 98 package. 99 100 The libbz2 package has been renamed to bzip2, and /usr/bin/bzip2 has 101 been moved to the new package. If you have set-minimal installed, 102 the new package will be added automatically, otherwise you may want 103 to manually install it. 104 105 This only affects pkgbase users. 106 10720250918: 108 mandoc (including /usr/bin/man) has been moved to a new package, 109 FreeBSD-mandoc. If you have the minimal set installed, this package 110 will be installed automatically, otherwise you may want to install it. 111 112 Kyua has been moved to the FreeBSD-kyua package, and ATF has been moved 113 to the FreeBSD-atf* packages. If you have FreeBSD-tests installed, 114 these packages will be installed automatically, otherwise you should 115 manually install them if you need these tools. 116 117 This only affects pkgbase users. 118 11920250912: 120 If SRCCONF is unset and a file named src.conf is present at 121 the top of the source tree, it will now be used instead of 122 /etc/src.conf. 123 12420250907: 125 The MANSPLITPKG knob has been turned off by default, so pkgbase builds 126 will no longer generate "-man" subpackages; instead the manpages will 127 be shipped in the packages they belong to. If you want to continue 128 building split man packages, set WITH_MANSPLITPKG=1. 129 13020250905: 131 FreeBSD 16.0-CURRENT. 132 13320250903: 134 The BLOAT_KERNEL_WITH_EXTERR kernel config option has been renamed to 135 EXTERR_STRINGS. 136 13720250827: 138 The names of pkg repositories defined in /etc/pkg/FreeBSD.conf have 139 changed: "FreeBSD" is now "FreeBSD-ports", and "FreeBSD-kmods" is now 140 "FreeBSD-ports-kmods". Users with /usr/local/etc/pkg/repos files 141 which override these will need to adjust their configuration to match 142 the new names. 143 14420250823: 145 The set of pkgbase packages for Kerberos and OpenSSL has changed. 146 After updating past 250e77d4f0a5, you should check 'pkg orphans' 147 and remove any orphaned packages, then examine the output of 148 'pkg install -r base -g FreeBSD-openssl\* FreeBSD-kerberos\*' 149 and install any new packages you need. 150 15120250823: 152 To restore bridge(4)'s ABI compatibility with ifconfig from 14.x or 153 earlier, the size of struct ifbreq has changed, so you must update 154 the kernel and /sbin/ifconfig at the same time or you will not be 155 able to add interfaces to bridge. This is particularly important 156 if you require bridge for network access during boot, in which case 157 you should install the new kernel and the new /sbin/ifconfig prior 158 to rebooting. 159 16020250820: 161 The WITHOUT_GSSAPI src.conf knob has been removed. This was already 162 a no-op for MIT Kerberos, so this only affects builds which set 163 WITHOUT_MITKRB5=1, in which case you now always get libgssapi. 164 165 Also, Heimdal's compile_et and libcom_err are now controlled by 166 WITHOUT_KERBEROS, not WITHOUT_KERBEROS_SUPPORT. This matches 167 the behaviour of the MIT Kerberos versions. 168 16920250820: 170 Commits 08c7dd2fbe4f and a4197ea47777 have changed the ABI between 171 libvmmapi and the vmm device. If using a custom kernel configuration, 172 please ensure that the COMPAT_FREEBSD14 option is included so older 173 versions of libvmmapi continue working as expected. 174 17520250819: 176 The CLEAN option has been switched back from default-on to default-off. 177 This reverts the 20250808 change below, which had reverted the 20240729 178 change before it. Note that some src.conf(5) options are known to break 179 ABI or compatibility in ways that may require a clean build initially 180 when switched. 181 18220250816: 183 Sendmail's libmilter has been moved to its own package. If you want 184 to compile applications that use libmilter, you should install the 185 FreeBSD-libmilter* packages. 186 187 If you only have FreeBSD-sendmail installed for applications that 188 require libmilter, you can now remove it. 189 19020250815: 191 The [gs]etgroups(2)syscalls have changed. To maintain backwards 192 compatibility with existing programs, you need COMPAT_FREEBSD14 in 193 your kernel config until all applications which use this are 194 rebuild/reinstalled. 195 19620250815: 197 jemalloc 5.3.0 has been committed to the tree. 198 19920250815: 200 The removal of Secure RPC DES authentication noted in 20250810 201 has been reverted. (However, it is still non-functional.) 202 20320250813: 204 Commit cce64f2e6851 changed the internal KAPI between the NFS 205 modules. As such, all of them need to be rebuilt from sources. 206 __FreeBSD_version has been bumped to 1500060 already today, 207 so I will not bump it again for this. 208 20920250813: 210 The gpiobus_attach_bus() function has been removed. Drivers should now 211 use the gpiobus_add_bus() function instead. The difference being that 212 gpiobus_add_bus() doesn't call bus_attach_children(), calling it will 213 be the responsibility of the caller now. 214 21520250810: 216 Support for Secure RPC DES authentication has been removed. 217 The keyserv(8) daemon was already removed, but support for it in libc 218 has also been removed, so if you somehow still had keyserv installed, 219 it will now stop working. There is no workaround for this. Removing 220 DES is considered a feature. 221 22220250808: 223 The CLEAN option has been switched back from default-off to 224 default-on. This reverts the 20240729 change below. 225 22620250807: 227 routed(8) and route6d(8) have moved to the FreeBSD-rip package. 228 If you use either of these, you should install the new package. 229 23020250806: 231 if_epair(4) now uses ether_gen_addr(9) to generate a stable MAC 232 address. 233 To keep using the random address, set the loader tunable 234 net.link.epair.ether_gen_addr=0. 235 23620250804: 237 bsdconfig (including sysrc(8)) has moved to the new bsdconfig 238 package. If you use pkgbase and wish to use bsdconfig, you should 239 install FreeBSD-bsdconfig. 240 24120250730: 242 The usbhid(4) USB HID driver is now enabled by default, and will be 243 used in preference to other USB HID drivers like ukbd(4), ums(4), and 244 uhid(4). Work on a FIDO/U2F driver and moused(8) is in progress. 245 The default is being switched now so that we can find and fix any 246 additional issues prior to FreeBSD 15.0. 247 248 To revert to the previous USB HID driver behavior, set the loader 249 tunable hw.usb.usbhid.enable=0. 250 25120250727: 252 bmake (i.e., /usr/bin/make and /usr/share/mk) has moved to a new 253 package, FreeBSD-bmake. If you use pkgbase and you need make, you 254 should install this package. 255 25620250726: 257 amd64 kernel configurations must contain "options SMP". 258 25920250725: 260 gssd(8) has been moved to a new package, FreeBSD-gssd. If you use 261 pkgbase and you need gssd, you should install this package. 262 26320250724: 264 The Kerberos packages which are built when WITH_MITKRB5 is enabled 265 have been renamed from FreeBSD-krb5* to FreeBSD-kerberos*. This 266 affects pkgbase users who manually enabled WITH_MITKRB5, *or* use 267 the default value of WITH_MITKRB5 and updated past c7da9fb90b0b 268 (20250721) which made WITH_MITKRB5 the default. 269 270 In either case, if you have FreeBSD-krb5* packages installed, you 271 should remove them and (re)install the equivalent FreeBSD-kerberos* 272 packages instead. 273 27420250721: 275 WITH_MITKRB5 is now enabled by default. MIT KRB5 has replaced 276 Heimdal in base. Ports that use USES=gssapi must be rebuilt. 277 A clean buildworld is required. 278 27920250719: 280 Commits 392a82b225 and c00baac0ab both changed the 281 internal API between the NFS modules. As such, all 282 these modules need to be rebuilt from sources. 283 __FreeBSD_version was bumped to 1500053 for this. 284 28520250710: 286 The shar(1) utility has been removed from base. The 287 sysutils/freebsd-shar port was created to maintain this version of 288 shar(1) past its removal from base. 289 29020250704: 291 LinuxKPI device.h and acpi changes effecting drivers and drm-kmod. 292 Bump __FreeBSD_version 1500050 to be able to detect these changes. 293 29420250630: 295 Commits 171f66b0c2ca and 8e2a90ac8089 changed the internal 296 api between nfscommon.ko and the other nfs modules. 297 Bump __FreeBSD_version to 1500049 for this. 298 All NFS related modules must be rebuilt from up-to-date 299 sources. 300 30120250625: 302 "make delete-old" will now remove the Forth bootloader entirely 303 if the system is built with WITHOUT_FORTH. 304 30520250614: 306 MIT KRB5 (MIT Kerberos5) has been imported into 15-CURRENT. To 307 and install MIT KRB5, add WITH_MITKRB5=yes to /etc/src.conf. This 308 will build and install MIT KRB5 1.21.3. And it will remove Heimdal 309 1.5.2 when delete-old and delete-old-libs are run. To revert back 310 simply buildworld/installworld again with delete-old-libs and 311 delete-old. 312 313 At the moment we only know of a couple of ports that might be 314 affected. Adjusting libmap.conf does not circumvent runtime issues. 315 The few affected ports must be rebuilt. A successful exp-run will be 316 run before MIT KRB5 becomes default. 317 318 Those using the KDC in FreeBSD base may wish to wait. The Heimdal 319 HDB is incompatible with the MIT KRB5 KDC. The migration procedure 320 is a little involved. 321 32220250603: 323 LinuxKPI dma-mapping.h were pulled into the tree from drm-kmod. 324 Bump _FreeBSD_version to 1500045 to be able to detect this change. 325 32620250527: 327 pf changed extension header handling. It now treats AH headers on IPv4 just 328 like AH headers on IPv6 and skips over them, allowing filtering on the inner 329 protocol. 330 33120250527: 332 pf now blocks IPv6 packets with a hop-by-hop or destination options header by 333 default. Such packets can be passed by adding "allow-opts" to the rule. IPv6 334 options are now handled just like their IPv4 counterparts. 335 33620250527: 337 The CAM target layer userland, i.e. ctld(8), ctladm(8) and ctlstat(8), 338 has moved to the new FreeBSD-ctl package. If you use pkgbase and you 339 need the CAM Target Layer, you should install the new package. 340 341 Development-related tools (e.g. ar and nm) have moved to the new 342 "FreeBSD-toolchain" package, which subsumes and obsoletes the 343 existing "FreeBSD-elftoolchain" package. If you use pkgbase and 344 need to compile software, you should install the new package and 345 ensure the old FreeBSD-elftoolchain* packages are completely removed. 346 34720250521: 348 Commit e64fe5ad3a23 removed in6_maxmtu and its setter in6_setmaxmtu(). 349 in6_maxmtu is used to store the max IPv6 MTU of all interfaces, 350 however it does not have any in-tree consumers since the introduction 351 from the KAME project. The removal should have little impact, and the 352 max IPv6 MTU can be easily retrieved by iterating over all the attached 353 interface if 3rd party modules need it. 354 35520250515: 356 Commit 772258c89f28 changed the internal API between the nfscommon 357 and nfscl modules. Both need to be built from updated sources. 358 35920250513: 360 The bridge(4) sysctl net.link.bridge.member_ifaddrs now defaults to 0, 361 meaning that interfaces added to a bridge may not have IP addresses 362 assigned. Refer to bridge(4) for more information. 363 36420250507: 365 UMASS quirks and auto-quirk probing has been overhauled. CAM now won't 366 send SYNCHRONIZE CACHE unless MODE PAGE 8 is present and valid. This 367 should allow more devices to work (since the auto quirk code was updated 368 in 14 and broke several e-readers and the like). Please send imp@freebsd.org 369 any regression reports. 370 37120250504: 372 Commit 9419e086e1a3 changed the internal API between the nfscommon 373 and nfscl modules. Both need to be built from updated sources. 374 37520250412: 376 LinuxKPI alloc routines were changed to return physically contiguous 377 memory where expected. These changes may require out-of-tree drivers 378 to be recompiled. 379 Bump __FreeBSD_version to 1500037 to be able to detect this change. 380 38120250409: 382 Intel iwlwifi firmware has been removed from the src repository. 383 Before updating their system, users of iwlwifi(4) or iwx(4) must 384 install the appropriate firmware for their chipset using fwget(8) or 385 building it from ports. 386 38720250314: 388 We now use LLVM's binary utilities (nm, objcopy, etc.) by default. 389 The WITHOUT_LLVM_BINUTILS src.conf(5) knob can be used to revert to 390 ELF Tool Chain tools if desired. 391 39220250303: 393 Commit 4a77657cbc01 changed the ABI between ipfw(8) and ipfw(4). 394 Please note that the old ipfw(8) binary will not work with the new 395 ipfw(4) module. Therefore, it is recommended to disable ipfw during 396 the upgrade, otherwise the host system may become inaccessible because 397 ipfw rules cannot be installed with the old binary. 398 39920250214: 400 Commit 4517fbfd4251 modified the internal API between the 401 nfscommon and nfscl modules. As such, both of these modules 402 need to be rebuilt from sources. 403 40420250201: 405 The NFS related daemons, that provide RPC services to the kernel: 406 gssd(8), rpcbind(8), rpc.tlsservd(8) and rpc.tlsclntd(8), now use a 407 different transport - netlink(4) socket instead of unix(4). Users of 408 NFS need to upgrade both kernel and world (binaries and libc) at once. 409 Also, any revision between 88cd1e17a7d8 and 99e5a70046da should be 410 avoided. 411 41220250129: 413 Defer the January 19, 2038 date limit in UFS1 filesystems to 414 February 7, 2106. This affects only UFS1 format filesystems. 415 See commit message 1111a44301da for details. 416 41720250127: 418 The Allwinner a10_timer driver has been renamed to aw_driver. If you 419 have a custom kernel configuration including the line 'device 420 a10_timer', it must be adjusted to 'device aw_timer'. The same applies 421 for device exclusions with 'nodevice'. 422 42320250106: 424 A new SOC_ROCKCHIP options appeared, so if you have a custom kernel configuration 425 targeting Rockchip SoC you need to add it so shared and mandatory drivers for 426 this SoC family will be selected. 427 Also a new rk8xx device was added, this select the base driver for Rockchip PMIC. 428 42920241223: 430 The layout of NFS file handles for the tarfs, tmpfs, cd9660, and ext2fs 431 file systems has changed. An NFS server that exports any of these file 432 systems will need its clients to unmount and remount the exports. 433 43420241216: 435 The iwm(4) firmwares are no longer compiled as kernel modules but instead 436 shipped as raw files. For pkgbase users if you use iwm(4) you will need 437 to install the FreeBSD-firmware-iwm package. 438 43920241124: 440 The OpenBSD derived bc and dc implementations and the WITHOUT_GH_BC 441 option that allowed building them instead of the advanced version 442 imported more than 4 years ago have been removed. 443 44420241107: 445 The ng_ubt(4) driver now requires firmwares to be loaded on Realtek 446 adaptors with rtlbtfw(8) utility. It no longer attaches to devices 447 standing in bootloader mode. Firmware files are available in the 448 comms/rtlbt-firmware port. 449 45020241025: 451 The support for the rc_fast_and_loose variable has been removed from 452 rc.subr(8). Users setting rc_fast_and_loose on their systems are 453 advised to make sure their customizations to rc service scripts 454 do not depend on having a single shell environment shared across 455 all the rc service scripts during booting and shutdown. 456 45720241013: 458 The ciss driver was updated to cope better with hotplug events that 459 caused it to panic before, and to support more than 48 drives attached 460 to the card. These changes were made w/o benefit of hardware for testing 461 and ciss(4) users should be on the lookout for regressions. 462 46320240729: 464 The build now defaults to WITHOUT_CLEAN - i.e., no automatic clean 465 is performed at the beginning of buildworld or buildkernel. The 466 WITH_CLEAN src.conf(5) knob can be used to restore the previous 467 behaviour. 468 469 If you encounter incremental build issues, please report them to the 470 freebsd-current mailing list so that a special-case dependency can be 471 added, if necessary. 472 47320240715: 474 We now lean more heavily on ACPI enumeration for some traditional 475 devices. uart has moved from isa to acpi so the hints act as wiring 476 instead of device enumeration. Hints for parallel port, floppy, etc 477 have been removed. Before upgrading, grep your dmesg for lines like: 478 uart1: non-PNP ISA device will be removed from GENERIC in FreeBSD 15. 479 to see if you need to start including hints for the device on isa 480 in your loader.conf or device.hints file. APU1 (but not APU2) boards 481 are known to be affected, but there may be others. 482 48320240712: 484 Support for armv6 has been disconnected and is being removed. 485 48620240617: 487 ifconfig now treats IPv4 addresses without a width or mask as an error. 488 Specify the desired mask or width along with the IP address on the 489 ifconfig command line and in rc.conf. 490 49120240428: 492 OpenBSM auditing runtime (auditd, etc.) has been moved into the new 493 package FreeBSD-audit. If you use OpenBSM auditing and pkgbase, you 494 should install FreeBSD-audit. 495 49620240424: 497 cron, lpr, and ntpd have been moved from FreeBSD-utilities into their 498 own packages. If you use pkgbase, you should install the relevant 499 packages: FreeBSD-cron, FreeBSD-lp, or FreeBSD-ntp. 500 50120240406: 502 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 503 been upgraded to 18.1.6. It is important that you run `make delete-old` 504 as described in the COMMON ITEMS section, otherwise several libc++ 505 headers that are obsolete and need to be removed can cause compilation 506 errors in C++ programs. 507 50820240205: 509 For dynamically linked programs, system calls are now made from 510 libsys rather than libc. No change in linkage is required as 511 libsys is an auxiliary filter for libc. People building custom 512 images must ensure that libsys.so.7 is included. 513 51420240202: 515 Loader now also read configuration files listed in local_loader_conf_files. 516 Files listed here are the last ones read. And /boot/loader.conf.local was 517 moved from loader_conf_files to local_loader_conf_files leaving only 518 loader.conf and device.hints in loader_conf_files by default. 519 520 The following sequencing is applied: 521 522 1. Bootstrap: 523 /boot/defaults/loader.conf 524 525 2. Read loader_conf_files files: 526 /boot/device.hints 527 /boot/loader.conf 528 529 3. Read loader_conf_dirs files: 530 /boot/loader.conf.d/*.conf 531 532 4. And finally, rread local_loader_conf_files files: 533 /boot/loader.conf.local 534 53520240201: 536 sendmail 8.18.1 has been imported and merged. This version enforces 537 stricter RFC compliance by default, especially with respect to line 538 endings. This may cause issues with receiving messages from 539 non-compliant MTAs; please see the first 8.18.1 release note in 540 contrib/sendmail/RELEASE_NOTES for mitigations. 541 54220240111: 543 Commit cc760de2183f changed the internal interface between 544 the nfscommon and nfscl modules. As such, both need to be 545 rebuilt from sources. Therefore, __FreeBSD_version was 546 bumped to 1500010. 547 54820231120: 549 If you have an arm64 system that uses ACPI, you will need to update your 550 loader.efi in the ESP when you update past this point. Detection of ACPI 551 was moved earlier in the binary so the scripts could use it, but old 552 binaries don't have this, so we default to 'no ACPI' in this case. You can 553 undisable ACPI by doing 554 OK unset hint.acpi.0.disabled 555 This can also be used to recover any other system that was updated in the 556 small window where amd64 was also broken. 557 55820231113: 559 The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled 560 it is always installed as /usr/bin/ld. 561 56220231027: 563 Forward compatibility (running the new code on old kernels) for the 564 "ino64" project have been removed. The need for it has passed long ago. 565 56620231018: 567 Commit 57ce37f9dcd0 changed the internal KAPI between the 568 nfscommon and nfscl modules. Both must be rebuilt from sources. 569 57020231010: 571 dialog(1) has been replaced in base by bsddialog(1), while most of the 572 time replacing a dialog(1) call by a bsddialog(1) call works out of the 573 box, bsddialog(1) is not considered as a drop-in replacement for 574 dialog(1). 575 576 If you do depend on dialog(1) functionality, please install cdialog 577 from ports: 578 579 pkg install cdialog 580 58120230927: 582 The EARLY_AP_STARTUP kernel option is mandatory on x86. The option 583 has been added to DEFAULTS, so it should automatically be included in 584 custom kernel configurations without any additional change. 585 58620230922: 587 A new loader tunable net.pf.default_to_drop allows pf(4)’s default 588 behaviour to be changed from pass to drop. Previously this required 589 recompiling the kernel with the option PF_DEFAULT_TO_DROP. 590 59120230914: 592 Enable splitting out pkgbase manpages into separate packages by 593 default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf. 594 59520230911: 596 Move standard include files to the clibs-dev package and move clang 597 internal libraries and headers to clang and clang-dev. Upgrading systems 598 installed using pkgbase past this change involves extra steps to allow 599 for these file moves: 600 601 pkg upgrade -y FreeBSD-utilities 602 pkg upgrade -y FreeBSD-utilities-dev 603 pkg upgrade -y 604 60520230909: 606 Enable vnet sysctl variables to be loader tunable. SYSCTLs which 607 belongs to VNETs can be initialized during early boot or module 608 loading if they are marked with CTLFLAG_TUN and there are 609 corresponding kernel environment variables. 610 61120230901: 612 The WITH_INIT_ALL_PATTERN and WITH_INIT_ALL_ZERO build options have 613 been replaced by INIT_ALL=pattern and INIT_ALL=zero respectively. 614 61520230824: 616 FreeBSD 15.0-CURRENT. 617 61820230817: 619 Serial communication (in boot loaders, kernel, and userland) has 620 been changed to default to 115200 bps, in line with common industry 621 practice and typical firmware serial console redirection 622 configuration. 623 624 Note that the early x86 BIOS bootloader (i.e., boot0sio) does not 625 support rates above 9600 bps and is not changed. boot0sio users may 626 set BOOT_COMCONSOLE_SPEED=9600 to use 9600 for all of the boot 627 components, or use the standard boot0 and have the boot2 stage start 628 with the serial port at 115200. 629 63020230807: 631 Following the general removal of MIPS support, the ath(4) AHB bus- 632 frontend has been removed, too, and building of the PCI support is 633 integrated with the ath(4) main module again. As a result, there's 634 no longer a need for if_ath_pci_load="YES" in /boot/loader.conf or 635 "device ath_pci" in the kernel configuration. 636 63720230803: 638 MAXCPU has been increased to 1024 in the amd64 GENERIC kernel config. 639 Out-of-tree kernel modules will need to be rebuilt. 640 64120230724: 642 CAM has been mechanically updated s/u_int(64|32|16|8)_t/uint\1_t/g 643 to move to the standard uintXX_t types from the old, traditional 644 BSD u_intXX_t types. This should be a NOP, but may cause problems 645 for out of tree changes. The SIMs were not updated since most of 646 the old u_intXX_t uses weren't due to CAM interfaces. 647 64820230713: 649 stable/14 branch created. 650 65120230629: 652 The heuristic for detecting old chromebooks with an EC bug that requires 653 atkbdc driver workarounds has changed. There should be no functional 654 change, but if your old chromebook's keyboard stops working, please 655 file a PR and assign it to imp. 656 65720230623: 658 OpenSSL has been updated to version 3.0, including changes throughout 659 the base system. It is important to rebuild third-party software 660 after upgrading. 661 66220230619: 663 To enable pf rdr rules for connections initiated from the host, pf 664 filter rules can be optionally enabled for packets delivered 665 locally. This can change the behavior of rules which match packets 666 delivered to lo0. To enable this feature: 667 668 sysctl net.pf.filter_local=1 669 service pf restart 670 671 When enabled, its best to ensure that packets delivered locally are not 672 filtered, e.g. by adding a 'skip on lo' rule. 673 67420230613: 675 Improvements to libtacplus(8) mean that tacplus.conf(5) now 676 follows POSIX shell syntax rules. This may cause TACACS+ 677 authentication to fail if the shared secret contains a single 678 quote, double quote, or backslash character which isn't 679 already properly quoted or escaped. 680 68120230612: 682 Belatedly switch the default nvme block device on x86 from nvd to nda. 683 nda created nvd compatibility links by default, so this should be a 684 nop. If this causes problems for your application, set hw.nvme.use_nvd=1 685 in your loader.conf or add `options NVME_USE_NVD=1` to your kernel 686 config. To disable the nvd compatibility aliases, add 687 kern.cam.nda.nvd_compat=0 to loader.conf. The default has been nda on 688 all non-x86 platforms for some time now. If you need to fall back, 689 please email imp@freebsd.org about why. 690 691 Encrypted swap partitions need to be changed from nvd to nda if you 692 migrate, or you need to use the above to switch back to nvd. 693 69420230422: 695 Remove portsnap(8). Users are encouraged to obtain the ports tree 696 using git instead. 697 69820230420: 699 Add jobs.mk to save typing. Enables -j${JOB_MAX} and logging 700 eg. 701 make buildworld-jobs 702 runs 703 make -j${JOB_MAX} buildworld > ../buildworld.log 2>&1 704 705 where JOB_MAX is derived from ncpus in local.sys.mk if not set in env. 706 70720230316: 708 Video related devices for some arm devices have been renamed. 709 If you have a custom kernel config and want to use hdmi output on 710 IMX6 board you need to add "device dwc_hdmi" "device imx6_hdmi" and 711 "device imx6_ipu" to it. 712 If you have a custom kernel config and want to use hdmi output on 713 TI AM335X board you need to add "device tda19988" to it. 714 If you add "device hdmi" in it you need to remove it as it doesn't 715 exist anymore. 716 71720230221: 718 Introduce new kernel options KBD_DELAY1 and KBD_DELAY2. See atkbdc(4) 719 for details. 720 72120230206: 722 sshd now defaults to having X11Forwarding disabled, following upstream. 723 Administrators who wish to enable X11Forwarding should add 724 `X11Forwarding yes` to /etc/ssh/sshd_config. 725 72620230204: 727 Since commit 75d41cb6967 Huawei 3G/4G LTE Mobile Devices do not default 728 to ECM, but NCM mode and need u3g and ucom modules loaded. See cdce(4). 729 73020230130: 731 As of commit 7c40e2d5f685, the dependency on netlink(4) has been added 732 to the linux_common(4) module. Users relying on linux_common may need 733 to compile netlink(4) module if it is not present in their kernel. 734 73520230126: 736 The WITHOUT_CXX option has been removed. C++ components in the base 737 system are now built unconditionally. 738 73920230113: 740 LinuxKPI pci.h changes may require out-of-tree drivers to be recompiled. 741 Bump _FreeBSD_version to 1400078 to be able to detect this change. 742 74320221212: 744 llvm-objdump is now always installed as objdump. Previously there was 745 no /usr/bin/objdump unless the WITH_LLVM_BINUTILS knob was used. 746 747 Some LLVM objdump options have a different output format compared to 748 GNU objdump; readelf is available for inspecting ELF files, and GNU 749 objdump is available from the devel/binutils port or package. 750 75120221205: 752 dma(8) has replaced sendmail(8) as the default mta. For people willing 753 to re-enable sendmail(8): 754 755 $ cp /usr/share/examples/sendmail/mailer.conf /etc/mail/mailer.conf 756 757 and add sendmail_enable="YES" to rc.conf. 758 75920221204: 760 hw.bus.disable_failed_devices has changed from 'false' to 'true' by 761 default. Now if newbus succeeds in probing a device, but fails to attach 762 the device, we'll disable the device. In the past, we'd keep retrying 763 the device on each new driver loaded. To get that behavior now, one 764 needs to use devctl to re-enable the device, and reprobe it (or set 765 the sysctl/tunable hw.bus.disable_failed_devices=false). 766 767 NOTE: This was reverted 20221205 due to unexpected compatibility issues 768 76920221122: 770 pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'. 771 These configurations are no longer automatically reinterpreted as 772 'scrub fragment reassemble'. 773 77420221121: 775 The WITHOUT_CLANG_IS_CC option has been removed. When Clang is enabled 776 it is always installed as /usr/bin/cc (and c++, cpp). 777 77820221026: 779 Some programs have been moved into separate packages. It is recommended 780 for pkgbase users to do: 781 782 pkg install FreeBSD-dhclient FreeBSD-geom FreeBSD-resolvconf \ 783 FreeBSD-devd FreeBSD-devmatch 784 785 after upgrading to restore all the component that were previously 786 installed. 787 78820221002: 789 OPIE has been removed from the base system. If needed, it can 790 be installed from ports (security/opie) or packages (opie). 791 Otherwise, make sure that your PAM policies do not reference 792 pam_opie or pam_opieaccess. 793 79420220610: 795 LinuxKPI pm.h changes require an update to the latest drm-kmod version 796 before re-compiling to avoid errors. 797 79820211230: 799 The macros provided for the manipulation of CPU sets (e.g. CPU_AND) 800 have been modified to take 2 source arguments instead of only 1. 801 Externally maintained sources that use these macros will have to 802 be adapted. The FreeBSD version has been bumped to 1400046 to 803 reflect this change. 804 80520211214: 806 A number of the kernel include files are able to be included by 807 themselves. A test has been added to buildworld to enforce this. 808 80920211209: 810 Remove mips as a recognized target. This starts the decommissioning of 811 mips support in FreeBSD. mips related items will be removed wholesale in 812 the coming days and weeks. 813 814 This broke the NO_CLEAN build for some people. Either do a clean build 815 or touch 816 lib/clang/include/llvm/Config/Targets.def 817 lib/clang/include/llvm/Config/AsmParsers.def 818 lib/clang/include/llvm/Config/Disassemblers.def 819 lib/clang/include/llvm/Config/AsmPrinters.def 820 before the build to force everything to rebuild that needs to. 821 82220211202: 823 Unbound support for RFC8375: The special-use domain 'home.arpa' is 824 by default blocked. To unblock it use a local-zone nodefault 825 statement in unbound.conf: 826 local-zone: "home.arpa." nodefault 827 828 Or use another type of local-zone to override with your choice. 829 830 The reason for this is discussed in Section 6.1 of RFC8375: 831 Because 'home.arpa.' is not globally scoped and cannot be secured 832 using DNSSEC based on the root domain's trust anchor, there is no way 833 to tell, using a standard DNS query, in which homenet scope an answer 834 belongs. Consequently, users may experience surprising results with 835 such names when roaming to different homenets. 836 83720211110: 838 Commit b8d60729deef changed the TCP congestion control framework so 839 that any of the included congestion control modules could be 840 the single module built into the kernel. Previously newreno 841 was automatically built in through direct reference. As of 842 this commit you are required to declare at least one congestion 843 control module (e.g. 'options CC_NEWRENO') and to also declare a 844 default using the CC_DEFAULT option (e.g. options CC_DEFAULT="newreno\"). 845 The GENERIC configuration includes CC_NEWRENO and defines newreno 846 as the default. If no congestion control option is built into the 847 kernel and you are including networking, the kernel compile will 848 fail. Also if no default is declared the kernel compile will fail. 849 85020211118: 851 Mips has been removed from universe builds. It will be removed from the 852 tree shortly. 853 85420211106: 855 Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE. 856 The NFS modules must be rebuilt from sources and any out 857 of tree file systems that implement their own VOP_ALLOCATE 858 may need to be modified. 859 86020211022: 861 The synchronous PPP kernel driver sppp(4) has been removed. 862 The cp(4) and ce(4) drivers are now always compiled with netgraph(4) 863 support, formerly enabled by NETGRAPH_CRONYX option. 864 86520211020: 866 sh(1) is now the default shell for the root user. To force root to use 867 the csh shell, please run the following command as root: 868 869 # chsh -s csh 870 87120211004: 872 Ncurses distribution has been split between libtinfow and libncurses 873 with libncurses.so becoming a linker (ld) script to seamlessly link 874 to libtinfow as needed. Bump _FreeBSD_version to 1400035 to reflect 875 this change. 876 87720210923: 878 As of commit 8160a0f62be6, the dummynet module no longer depends on the 879 ipfw module. Dummynet can now be used by pf as well as ipfw. As such 880 users who relied on this dependency may need to include ipfw in the 881 list of modules to load on their systems. 882 88320210922: 884 As of commit 903873ce1560, the mixer(8) utility has got a slightly 885 new syntax. Please refer to the mixer(8) manual page for more 886 information. The old mixer utility can be installed from ports: 887 audio/freebsd-13-mixer 888 88920210911: 890 As of commit 55089ef4f8bb, the global variable nfs_maxcopyrange has 891 been deleted from the nfscommon.ko. As such, nfsd.ko must be built 892 from up to date sources to avoid an undefined reference when 893 being loaded. 894 89520210817: 896 As of commit 62ca9fc1ad56 OpenSSL no longer enables kernel TLS 897 by default. Users can enable kernel TLS via the "KTLS" SSL 898 option. This can be enabled globally by using a custom 899 OpenSSL config file via OPENSSL_CONF or via an 900 application-specific configuration option for applications 901 which permit setting SSL options via SSL_CONF_cmd(3). 902 90320210811: 904 Commit 3ad1e1c1ce20 changed the internal KAPI between the NFS 905 modules. Therefore, all need to be rebuilt from sources. 906 90720210730: 908 Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl. 909 As of be70c7a50d32 it is no longer used by userspace, but it does mean 910 users may not be able to enumerate pf states if they update the kernel 911 past b69019c14cd8 without first updating userspace past be70c7a50d32. 912 91320210729: 914 As of commit 01ad0c007964 if_bridge member interfaces can no longer 915 change their MTU. Changing the MTU of the bridge itself will change the 916 MTU on all member interfaces instead. 917 91820210716: 919 Commit ee29e6f31111 changed the internal KAPI between the nfscommon 920 and nfsd modules. Therefore, both need to be rebuilt from sources. 921 Bump __FreeBSD_version to 1400026 for this KAPI change. 922 92320210715: 924 The 20210707 awk update brought in a change in behavior. This has 925 been corrected as of d4d252c49976. Between these dates, if you 926 installed a new awk binary, you may not be able to build a new 927 kernel because the change in behavior affected the genoffset 928 script used to build the kernel. If you did update, the fix is 929 to update your sources past the above hash and do 930 % cd usr.bin/awk 931 % make clean all 932 % sudo -E make install 933 to enable building kernels again. 934 93520210708: 936 Commit 1e0a518d6548 changed the internal KAPI between the NFS 937 modules. They all need to be rebuilt from sources. I did not 938 bump __FreeBSD_version, since it was bumped recently. 939 94020210707: 941 awk has been updated to the latest one-true-awk version 20210215. 942 This contains a number of minor bug fixes. 943 94420210624: 945 The NFSv4 client now uses the highest minor version of NFSv4 946 supported by the NFSv4 server by default instead of minor version 0, 947 for NFSv4 mounts. 948 The "minorversion" mount option may be used to override this default. 949 95020210618: 951 Bump __FreeBSD_version to 1400024 for LinuxKPI changes. 952 Most notably netdev.h can change now as the (last) dependencies 953 (mlx4/ofed) are now using struct ifnet directly, but also for PCI 954 additions and others. 955 95620210618: 957 The directory "blacklisted" under /usr/share/certs/ has been 958 renamed to "untrusted". 959 96020210611: 961 svnlite has been removed from base. Should you need svn for any reason 962 please install the svn package or port. 963 96420210611: 965 Commit e1a907a25cfa changed the internal KAPI between the krpc 966 and nfsserver. As such, both modules must be rebuilt from 967 sources. Bump __FreeBSD_version to 1400022. 968 96920210610: 970 The an(4) driver has been removed from FreeBSD. 971 97220210608: 973 The vendor/openzfs branch was renamed to vendor/openzfs/legacy to 974 start tracking OpenZFS upstream more closely. Please see 975https://lists.freebsd.org/archives/freebsd-current/2021-June/000153.html 976 for details on how to correct any errors that might result. The 977 short version is that you need to remove the old branch locally: 978 git update-ref -d refs/remotes/freebsd/vendor/openzfs 979 (assuming your upstream origin is named 'freebsd'). 980 98120210525: 982 Commits 17accc08ae15 and de102f870501 add new files to LinuxKPI 983 which break drm-kmod. In addition various other additions where 984 committed. Bump __FreeBSD_version to 1400015 to be able to 985 detect this. 986 98720210513: 988 Commit ca179c4d74f2 changed the package in which the OpenSSL 989 libraries and utilities are packaged. 990 It is recommended for pkgbase user to do: 991 pkg install -f FreeBSD-openssl 992 before pkg upgrade otherwise some dependencies might not be met 993 and pkg will stop working as libssl will not be present anymore 994 on the system. 995 99620210426: 997 Commit 875977314881 changed the internal KAPI between 998 the nfsd and nfscommon modules. As such these modules 999 need to be rebuilt from sources. 1000 Without this patch in your NFSv4.1/4.2 server, enabling 1001 delegations by setting vfs.nfsd.issue_delegations non-zero 1002 is not recommended. 1003 100420210411: 1005 Commit 7763814fc9c2 changed the internal KAPI between 1006 the krpc and NFS. As such, the krpc, nfscommon and 1007 nfscl modules must all be rebuilt from sources. 1008 Without this patch, NFSv4.1/4.2 mounts should not 1009 be done with the nfscbd(8) daemon running, to avoid 1010 needing a working back channel for server->client RPCs. 1011 101220210330: 1013 Commit 01ae8969a9ee fixed the NFSv4.1/4.2 server so that it 1014 handles binding of the back channel as required by RFC5661. 1015 Until this patch is in your server, avoid use of the "nconnects" 1016 mount option for Linux NFSv4.1/4.2 mounts. 1017 101820210225: 1019 For 64-bit architectures the base system is now built with Position 1020 Independent Executable (PIE) support enabled by default. It may be 1021 disabled using the WITHOUT_PIE knob. A clean build is required. 1022 102320210128: 1024 Various LinuxKPI functionality was added which conflicts with DRM. 1025 Please update your drm-kmod port to after the __FreeBSD_version 1400003 1026 update. 1027 102820210121: 1029 stable/13 branch created. 1030 103120210108: 1032 PC Card attachments for all devices have been removed. In the case of 1033 wi and cmx, the entire drivers were removed because they were only 1034 PC Card devices. FreeBSD_version 1300134 should be used for this 1035 since it was bumped so recently. 1036 103720210107: 1038 Transport-independent parts of HID support have been split off the USB 1039 code in to separate subsystem. Kernel configs which include one of 1040 ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should 1041 be updated with adding of "device hid" line. 1042 104320210105: 1044 ncurses installation has been modified to only keep the widechar 1045 enabled version. Incremental build is broken for that change, so it 1046 requires a clean build. 1047 104820201223: 1049 The FreeBSD project has migrated from Subversion to Git. Temporary 1050 instructions can be found at 1051 https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md 1052 and other documents in that repo. 1053 105420201216: 1055 The services database has been updated to cover more of the basic 1056 services expected in a modern system. The database is big enough 1057 that it will cause issues in mergemaster in Releases previous to 1058 12.2 and 11.3, or in very old current systems from before r358154. 1059 106020201215: 1061 Obsolete in-tree GDB 6.1.1 has been removed. GDB (including kgdb) 1062 may be installed from ports or packages. 1063 106420201124: 1065 ping6 has been merged into ping. It can now be called as "ping -6". 1066 See ping(8) for details. 1067 106820201108: 1069 Default value of net.add_addr_allfibs has been changed to 0. 1070 If you have multi-fib configuration and rely on existence of all 1071 interface routes in every fib, you need to set the above sysctl to 1. 1072 107320201030: 1074 The internal pre-processor in the calendar(1) program has been 1075 extended to support more C pre-processor commands (e.g. #ifdef, #else, 1076 and #undef) and to detect unbalanced conditional statements. 1077 Error messages have been extended to include the filename and line 1078 number if processing stops to help fixing malformed data files. 1079 108020201026: 1081 All the data files for the calendar(1) program, except calendar.freebsd, 1082 have been moved to the deskutils/calendar-data port, much like the 1083 jewish calendar entries were moved to deskutils/hebcal years ago. After 1084 make delete-old-files, you need to install it to retain full 1085 functionality. calendar(1) will issue a reminder for files it can't 1086 find. 1087 108820200923: 1089 LINT files are no longer generated. We now include the relevant NOTES 1090 files. Note: This may cause conflicts with updating in some cases. 1091 find sys -name LINT\* -delete 1092 is suggested across this commit to remove the generated LINT files. 1093 1094 If you have tried to update with generated files there, the svn 1095 command you want to un-auger the tree is 1096 cd sys/amd64/conf 1097 svn revert -R . 1098 and then do the above find from the top level. Substitute 'amd64' 1099 above with where the error message indicates a conflict. 1100 110120200824: 1102 OpenZFS support has been integrated. Do not upgrade root pools until 1103 the loader is updated to support zstd. Furthermore, we caution against 1104 'zpool upgrade' for the next few weeks. The change should be transparent 1105 unless you want to use new features. 1106 1107 Not all "NO_CLEAN" build scenarios work across these changes. Many 1108 scenarios have been tested and fixed, but rebuilding kernels without 1109 rebuilding world may fail. 1110 1111 The ZFS cache file has moved from /boot to /etc to match the OpenZFS 1112 upstream default. A fallback to /boot has been added for mountroot. 1113 1114 Pool auto import behavior at boot has been moved from the kernel module 1115 to an explicit "zpool import -a" in one of the rc scripts enabled by 1116 zfs_enable=YES. This means your non-root zpools won't auto import until 1117 you upgrade your /etc/rc.d files. 1118 111920200824: 1120 The resume code now notifies devd with the 'kernel' system 1121 rather than the old 'kern' subsystem to be consistent with 1122 other use. The old notification will be created as well, but 1123 will be removed prior to FreeBSD 14.0. 1124 112520200821: 1126 r362275 changed the internal API between the kernel RPC and the 1127 NFS modules. As such, all the modules must be recompiled from 1128 sources. 1129 113020200817: 1131 r364330 modified the internal API used between the NFS modules. 1132 As such, all the NFS modules must be re-compiled from sources. 1133 113420200816: 1135 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1136 been upgraded to 11.0.0. Please see the 20141231 entry below for 1137 information about prerequisites and upgrading, if you are not already 1138 using clang 3.5.0 or higher. 1139 114020200810: 1141 r364092 modified the internal ABI used between the kernel NFS 1142 modules. As such, all of these modules need to be rebuilt 1143 from sources, so a version bump was done. 1144 114520200807: 1146 Makefile.inc has been updated to work around the issue documented in 1147 20200729. It was a case where the optimization of using symbolic links 1148 to point to binaries created a situation where we'd run new binaries 1149 with old libraries starting midway through the installworld process. 1150 115120200729: 1152 r363679 has redefined some undefined behavior in regcomp(3); notably, 1153 extraneous escapes of most ordinary characters will no longer be 1154 accepted. An exp-run has identified all of the problems with this in 1155 ports, but other non-ports software may need extra escapes removed to 1156 continue to function. 1157 1158 Because of this change, installworld may encounter the following error 1159 from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that 1160 you do not halt installworld. Instead, let it run to completion (whether 1161 successful or not) and run installworld once more. 1162 116320200627: 1164 A new implementation of bc and dc has been imported in r362681. This 1165 implementation corrects non-conformant behavior of the previous bc 1166 and adds GNU bc compatible options. It offers a number of extensions, 1167 is much faster on large values, and has support for message catalogs 1168 (a number of languages are already supported, contributions of further 1169 languages welcome). The option WITHOUT_GH_BC can be used to build the 1170 world with the previous versions of bc and dc. 1171 117220200625: 1173 r362639 changed the internal API used between the NFS kernel modules. 1174 As such, they all need to be rebuilt from sources. 1175 117620200613: 1177 r362158 changed the arguments for VFS_CHECKEXP(). As such, any 1178 out of tree file systems need to be modified and rebuilt. 1179 Also, any file systems that are modules must be rebuilt. 1180 118120200604: 1182 read(2) of a directory fd is now rejected by default. root may 1183 re-enable it for system root only on non-ZFS filesystems with the 1184 security.bsd.allow_read_dir sysctl(8) MIB if 1185 security.bsd.suser_enabled=1. 1186 1187 It may be advised to setup aliases for grep to default to `-d skip` if 1188 commonly non-recursively grepping a list that includes directories and 1189 the potential for the resulting stderr output is not tolerable. Example 1190 aliases are now installed, commented out, in /root/.cshrc and 1191 /root/.shrc. 1192 119320200523: 1194 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1195 been upgraded to 10.0.1. Please see the 20141231 entry below for 1196 information about prerequisites and upgrading, if you are not already 1197 using clang 3.5.0 or higher. 1198 119920200512: 1200 Support for obsolete compilers has been removed from the build system. 1201 Clang 6 and GCC 6.4 are the minimum supported versions. 1202 120320200424: 1204 closefrom(2) has been moved under COMPAT12, and replaced in libc with a 1205 stub that calls close_range(2). If using a custom kernel configuration, 1206 you may want to ensure that the COMPAT_FREEBSD12 option is included, as 1207 a slightly older -CURRENT userland and older FreeBSD userlands may not 1208 be functional without closefrom(2). 1209 121020200414: 1211 Upstream DTS from Linux 5.6 was merged and they now have the SID 1212 and THS (Secure ID controller and THermal Sensor) node present. 1213 The DTB overlays have now been removed from the tree for the H3/H5 and 1214 A64 SoCs and the aw_sid and aw_thermal driver have been updated to 1215 deal with upstream DTS. If you are using those overlays you need to 1216 remove them from loader.conf and update the DTBs on the FAT partition. 1217 121820200310: 1219 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1220 been upgraded to 10.0.0. Please see the 20141231 entry below for 1221 information about prerequisites and upgrading, if you are not already 1222 using clang 3.5.0 or higher. 1223 122420200309: 1225 The amd(8) automount daemon has been removed from the source tree. 1226 As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. 1227 amd is still available in the sysutils/am-utils port. 1228 122920200301: 1230 Removed brooktree driver (bktr.4) from the tree. 1231 123220200229: 1233 The WITH_GPL_DTC option has been removed. The BSD-licenced device tree 1234 compiler in usr.bin/dtc is used on all architectures which use dtc, and 1235 the GPL dtc is available (if needed) from the sysutils/dtc port. 1236 123720200229: 1238 The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind 1239 is used by all supported CPU architectures. 1240 124120200229: 1242 GCC 4.2.1 has been removed from the tree. The WITH_GCC, 1243 WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. 1244 Users who wish to build FreeBSD with GCC must use the external toolchain 1245 ports or packages. 1246 124720200220: 1248 ncurses has been updated to a newer version (6.2-20200215). Given the ABI 1249 has changed, users will have to rebuild all the ports that are linked to 1250 ncurses. 1251 125220200217: 1253 The size of struct vnet and the magic cookie have changed. 1254 Users need to recompile libkvm and all modules using VIMAGE 1255 together with their new kernel. 1256 125720200212: 1258 Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, 1259 NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update 1260 your Makefiles and scripts to define MK_<var>=no instead as required. 1261 1262 One exception to this is that program or library Makefiles should 1263 define MAN to empty rather than setting MK_MAN=no. 1264 126520200108: 1266 Clang/LLVM is now the default compiler and LLD the default 1267 linker for riscv64. 1268 126920200107: 1270 make universe no longer uses GCC 4.2.1 on any architectures. 1271 Architectures not supported by in-tree Clang/LLVM require an 1272 external toolchain package. 1273 127420200104: 1275 GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 1276 retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX 1277 options default to off for all supported CPU architectures. As a 1278 short-term transition aid they may be enabled via WITH_* options. 1279 GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. 1280 128120200102: 1282 Support for armv5 has been disconnected and is being removed. The 1283 machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. 1284 You must now use a MACHINE_ARCH of armv6 or armv7. The default 1285 MACHINE_ARCH for MACHINE=arm is now armv7. 1286 128720191226: 1288 Clang/LLVM is now the default compiler for all powerpc architectures. 1289 LLD is now the default linker for powerpc64. The change for powerpc64 1290 also includes a change to the ELFv2 ABI, incompatible with the existing 1291 ABI. 1292 129320191226: 1294 Kernel-loadable random(4) modules are no longer unloadable. 1295 129620191222: 1297 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1298 been upgraded to 9.0.1. Please see the 20141231 entry below for 1299 information about prerequisites and upgrading, if you are not already 1300 using clang 3.5.0 or higher. 1301 130220191212: 1303 r355677 has modified the internal interface used between the 1304 NFS modules in the kernel. As such, they must all be upgraded 1305 simultaneously. I will do a version bump for this. 1306 130720191205: 1308 The root certificates of the Mozilla CA Certificate Store have been 1309 imported into the base system and can be managed with the certctl(8) 1310 utility. If you have installed the security/ca_root_nss port or package 1311 with the ETCSYMLINK option (the default), be advised that there may be 1312 differences between those included in the port and those included in 1313 base due to differences in nss branch used as well as general update 1314 frequency. Note also that certctl(8) cannot manage certs in the 1315 format used by the security/ca_root_nss port. 1316 131720191120: 1318 The amd(8) automount daemon has been disabled by default, and will be 1319 removed in the future. As of FreeBSD 10.1 the autofs(5) is available 1320 for automounting. 1321 132220191107: 1323 The nctgpio and wbwd drivers have been moved to the superio bus. 1324 If you have one of these drivers in a kernel configuration, then 1325 you should add device superio to it. If you use one of these drivers 1326 as a module and you compile a custom set of modules, then you should 1327 add superio to the set. 1328 132920191021: 1330 KPIs for network drivers to access interface addresses have changed. 1331 Users need to recompile NIC driver modules together with kernel. 1332 133320191021: 1334 The net.link.tap.user_open sysctl no longer prevents user opening of 1335 already created /dev/tapNN devices. Access is still controlled by 1336 node permissions, just like tun devices. The net.link.tap.user_open 1337 sysctl is now used only to allow users to perform devfs cloning of 1338 tap devices, and the subsequent open may not succeed if the user is not 1339 in the appropriate group. This sysctl may be deprecated/removed 1340 completely in the future. 1341 134220191009: 1343 mips, powerpc, and sparc64 are no longer built as part of 1344 universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If 1345 not defined, mips, powerpc, and sparc64 builds will look for 1346 the xtoolchain binaries and if installed use them for universe 1347 builds. As llvm 9.0 becomes vetted for these architectures, they 1348 will be removed from the list. 1349 135020191009: 1351 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1352 been upgraded to 9.0.0. Please see the 20141231 entry below for 1353 information about prerequisites and upgrading, if you are not already 1354 using clang 3.5.0 or higher. 1355 135620191003: 1357 The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from 1358 GENERIC. They are available as modules and can be loaded by adding 1359 to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", 1360 hptnr_load="YES", or hptrr_load="YES", respectively. 1361 136220190913: 1363 ntpd no longer by default locks its pages in memory, allowing them 1364 to be paged out by the kernel. Use rlimit memlock to restore 1365 historic BSD behaviour. For example, add "rlimit memlock 32" 1366 to ntp.conf to lock up to 32 MB of ntpd address space in memory. 1367 136820190823: 1369 Several of ping6's options have been renamed for better consistency 1370 with ping. If you use any of -ARWXaghmrtwx, you must update your 1371 scripts. See ping6(8) for details. 1372 137320190727: 1374 The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls 1375 and the "-o sync_unmount" and "-o init_backgrounded" mount options have 1376 been removed from mount_fusefs(8). You can safely remove them from 1377 your scripts, because they had no effect. 1378 1379 The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, 1380 vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, 1381 vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate 1382 sysctls have been removed. If you felt the need to set any of them to 1383 a non-default value, please tell asomers@FreeBSD.org why. 1384 138520190713: 1386 Default permissions on the /var/account/acct file (and copies of it 1387 rotated by periodic daily scripts) are changed from 0644 to 0640 1388 because the file contains sensitive information that should not be 1389 world-readable. If the /var/account directory must be created by 1390 rc.d/accounting, the mode used is now 0750. Admins who use the 1391 accounting feature are encouraged to change the mode of an existing 1392 /var/account directory to 0750 or 0700. 1393 139420190620: 1395 Entropy collection and the /dev/random device are no longer optional 1396 components. The "device random" option has been removed. 1397 Implementations of distilling algorithms can still be made loadable 1398 with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). 1399 140020190612: 1401 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 1402 been upgraded to 8.0.1. Please see the 20141231 entry below for 1403 information about prerequisites and upgrading, if you are not already 1404 using clang 3.5.0 or higher. 1405 140620190608: 1407 A fix was applied to i386 kernel modules to avoid panics with 1408 dpcpu or vnet. Users need to recompile i386 kernel modules 1409 having pcpu or vnet sections or they will refuse to load. 1410 141120190513: 1412 User-wired pages now have their own counter, 1413 vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed 1414 to vm.max_user_wired and changed from an unsigned int to an unsigned 1415 long. bhyve VMs wired with the -S are now subject to the user 1416 wiring limit; the vm.max_user_wired sysctl may need to be tuned to 1417 avoid running into the limit. 1418 141920190507: 1420 The IPSEC option has been removed from GENERIC. Users requiring 1421 ipsec(4) must now load the ipsec(4) kernel module. 1422 142320190507: 1424 The tap(4) driver has been folded into tun(4), and the module has been 1425 renamed to tuntap. You should update any kld_list="if_tap" or 1426 kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or 1427 if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap 1428 module instead, and "device tap" or "device tun" entries in kernel 1429 config files to select the tuntap device instead. 1430 143120190418: 1432 The following knobs have been added related to tradeoffs between 1433 safe use of the random device and availability in the absence of 1434 entropy: 1435 1436 kern.random.initial_seeding.bypass_before_seeding: tunable; set 1437 non-zero to bypass the random device prior to seeding, or zero to 1438 block random requests until the random device is initially seeded. 1439 For now, set to 1 (unsafe) by default to restore pre-r346250 boot 1440 availability properties. 1441 1442 kern.random.initial_seeding.read_random_bypassed_before_seeding: 1443 read-only diagnostic sysctl that is set when bypass is enabled and 1444 read_random(9) is bypassed, to enable programmatic handling of this 1445 initial condition, if desired. 1446 1447 kern.random.initial_seeding.arc4random_bypassed_before_seeding: 1448 Similar to the above, but for arc4random(9) initial seeding. 1449 1450 kern.random.initial_seeding.disable_bypass_warnings: tunable; set 1451 non-zero to disable warnings in dmesg when the same conditions are 1452 met as for the diagnostic sysctls above. Defaults to zero, i.e., 1453 produce warnings in dmesg when the conditions are met. 1454 145520190416: 1456 The loadable random module KPI has changed; the random_infra_init() 1457 routine now requires a 3rd function pointer for a bool (*)(void) 1458 method that returns true if the random device is seeded (and 1459 therefore unblocked). 1460 146120190404: 1462 r345895 reverts r320698. This implies that an nfsuserd(8) daemon 1463 built from head sources between r320757 (July 6, 2017) and 1464 r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" 1465 is added to the command line. 1466 nfsuserd daemons built from head sources that are post-r338192 are 1467 not affected and should continue to work. 1468 146920190320: 1470 The fuse(4) module has been renamed to fusefs(4) for consistency with 1471 other filesystems. You should update any kld_load="fuse" entries in 1472 /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and 1473 "options FUSE" entries in kernel config files. 1474 147520190304: 1476 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1477 8.0.0. Please see the 20141231 entry below for information about 1478 prerequisites and upgrading, if you are not already using clang 3.5.0 1479 or higher. 1480 148120190226: 1482 geom_uzip(4) depends on the new module xz. If geom_uzip is statically 1483 compiled into your custom kernel, add 'device xz' statement to the 1484 kernel config. 1485 148620190219: 1487 drm and drm2 have been removed from the tree. Please see 1488 https://wiki.freebsd.org/Graphics for the latest information on 1489 migrating to the drm ports. 1490 149120190131: 1492 Iflib is no longer unconditionally compiled into the kernel. Drivers 1493 using iflib and statically compiled into the kernel, now require 1494 the 'device iflib' config option. For the same drivers loaded as 1495 modules on kernels not having 'device iflib', the iflib.ko module 1496 is loaded automatically. 1497 149820190125: 1499 The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration 1500 options no longer exist since r343219 and r343427 respectively; 1501 nothing uses them, so they should be just removed from custom 1502 kernel config files. 1503 150420181230: 1505 r342635 changes the way efibootmgr(8) works by requiring users to add 1506 the -b (bootnum) parameter for commands where the bootnum was previously 1507 specified with each option. For example 'efibootmgr -B 0001' is now 1508 'efibootmgr -B -b 0001'. 1509 151020181220: 1511 r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport 1512 in the same as it is applied to NFSv2 and 3. This implies that NFSv4 1513 servers that have vfs.nfsd.nfs_privport set will only allow mounts 1514 from clients using a reserved port. Since both the FreeBSD and Linux 1515 NFSv4 clients use reserved ports by default, this should not affect 1516 most NFSv4 mounts. 1517 151820181219: 1519 The XLP config has been removed. We can't support 64-bit atomics in this 1520 kernel because it is running in 32-bit mode. XLP users must transition 1521 to running a 64-bit kernel (XLP64 or XLPN32). 1522 1523 The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is 1524 the preferred emulator today and we don't need two different ones. 1525 1526 The old sibyte / swarm / Broadcom BCM1250 support has been 1527 removed from the mips port. 1528 152920181211: 1530 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1531 7.0.1. Please see the 20141231 entry below for information about 1532 prerequisites and upgrading, if you are not already using clang 3.5.0 1533 or higher. 1534 153520181211: 1536 Remove the timed and netdate programs from the base tree. Setting 1537 the time with these daemons has been obsolete for over a decade. 1538 153920181126: 1540 On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld 1541 linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as 1542 it produces broken binaries when ifuncs are in use. Users needing 1543 GNU ld should install the binutils port or package. 1544 154520181123: 1546 The BSD crtbegin and crtend code has been enabled by default. It has 1547 had extensive testing on amd64, arm64, and i386. It can be disabled 1548 by building a world with -DWITHOUT_BSD_CRTBEGIN. 1549 155020181115: 1551 The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) 1552 has been converted to a port (misc/ctm) and will be removed from 1553 FreeBSD-13. It is available as a package (ctm) for all supported 1554 FreeBSD versions. 1555 155620181110: 1557 The default newsyslog.conf(5) file has been changed to only include 1558 files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if 1559 the filenames end in '.conf' and do not begin with a '.'. 1560 1561 You should check the configuration files in these two directories match 1562 this naming convention. You can verify which configuration files are 1563 being included using the command: 1564 $ newsyslog -Nrv 1565 156620181019: 1567 Stable/12 was branched created. 1568 156920181015: 1570 Ports for the DRM modules have been simplified. Now, amd64 users should 1571 just install the drm-kmod port. All others should install 1572 drm-legacy-kmod. 1573 1574 Graphics hardware that's newer than about 2010 usually works with 1575 drm-kmod. For hardware older than 2013, however, some users will need 1576 to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older 1577 than 2008 usually only works in drm-legacy-kmod. The graphics team can 1578 only commit to hardware made since 2013 due to the complexity of the 1579 market and difficulty to test all the older cards effectively. If you 1580 have hardware supported by drm-kmod, you are strongly encouraged to use 1581 that as you will get better support. 1582 1583 Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined 1584 elsewhere, the drm and drm2 modules will be eliminated from the src base 1585 soon (with a limited exception for arm). Please update to the package 1586 asap and report any issues to x11@freebsd.org. 1587 1588 Generally, anybody using the drm*-kmod packages should add 1589 WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty 1590 cross-threading surprises, especially with automatic driver 1591 loading from X11 startup. These will become the defaults in 13-current 1592 shortly. 1593 159420181012: 1595 The ixlv(4) driver has been renamed to iavf(4). As a consequence, 1596 custom kernel and module loading configuration files must be updated 1597 accordingly. Moreover, interfaces previous presented as ixlvN to the 1598 system are now exposed as iavfN and network configuration files must 1599 be adjusted as necessary. 1600 160120181009: 1602 OpenSSL has been updated to version 1.1.1. This update included 1603 additional various API changes throughout the base system. It is 1604 important to rebuild third-party software after upgrading. The value 1605 of __FreeBSD_version has been bumped accordingly. 1606 160720181006: 1608 The legacy DRM modules and drivers have now been added to the loader's 1609 module blacklist, in favor of loading them with kld_list in rc.conf(5). 1610 The module blacklist may be overridden with the loader.conf(5) 1611 'module_blacklist' variable, but loading them via rc.conf(5) is strongly 1612 encouraged. 1613 161420181002: 1615 The cam(4) based nda(4) driver will be used over nvd(4) by default on 1616 powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or 1617 loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing 1618 driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the 1619 nda device name. 1620 162120180913: 1622 Reproducible build mode is now on by default, in preparation for 1623 FreeBSD 12.0. This eliminates build metadata such as the user, 1624 host, and time from the kernel (and uname), unless the working tree 1625 corresponds to a modified checkout from a version control system. 1626 The previous behavior can be obtained by setting the /etc/src.conf 1627 knob WITHOUT_REPRODUCIBLE_BUILD. 1628 162920180826: 1630 The Yarrow CSPRNG has been removed from the kernel as it has not been 1631 supported by its designers since at least 2003. Fortuna has been the 1632 default since FreeBSD-11. 1633 163420180822: 1635 devctl freeze/thaw have gone into the tree, the rc scripts have been 1636 updated to use them and devmatch has been changed. You should update 1637 kernel, userland and rc scripts all at the same time. 1638 163920180818: 1640 The default interpreter has been switched from 4th to Lua. 1641 LOADER_DEFAULT_INTERP, documented in build(7), will override the default 1642 interpreter. If you have custom FORTH code you will need to set 1643 LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in 1644 src.conf for the build. This will create default hard links between 1645 loader and loader_4th instead of loader and loader_lua, the new default. 1646 If you are using UEFI it will create the proper hard link to loader.efi. 1647 1648 bhyve uses userboot.so. It remains 4th-only until some issues are solved 1649 regarding coexisting with multiple versions of FreeBSD are resolved. 1650 165120180815: 1652 ls(1) now respects the COLORTERM environment variable used in other 1653 systems and software to indicate that a colored terminal is both 1654 supported and desired. If ls(1) is suddenly emitting colors, they may 1655 be disabled again by either removing the unwanted COLORTERM from your 1656 environment, or using `ls --color=never`. The ls(1) specific CLICOLOR 1657 may not be observed in a future release. 1658 165920180808: 1660 The default pager for most commands has been changed to "less". To 1661 restore the old behavior, set PAGER="more" and MANPAGER="more -s" in 1662 your environment. 1663 166420180731: 1665 The jedec_ts(4) driver has been removed. A superset of its functionality 1666 is available in the jedec_dimm(4) driver, and the manpage for that 1667 driver includes migration instructions. If you have "device jedec_ts" 1668 in your kernel configuration file, it must be removed. 1669 167020180730: 1671 amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. 1672 This should have no effect if the kernel is booted via BIOS/legacy boot. 1673 EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system 1674 has a buggy firmware that prevents a successful boot due to use of 1675 runtime services. 1676 167720180727: 1678 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 1679 support has been removed from the tree. These ports were 1680 obsolete and/or known to be broken for many years. 1681 168220180723: 1683 loader.efi has been augmented to participate more fully in the 1684 UEFI boot manager protocol. loader.efi will now look at the 1685 BootXXXX environment variable to determine if a specific kernel 1686 or root partition was specified. XXXX is derived from BootCurrent. 1687 efibootmgr(8) manages these standard UEFI variables. 1688 168920180720: 1690 zfsloader's functionality has now been folded into loader. 1691 zfsloader is no longer necessary once you've updated your 1692 boot blocks. For a transition period, we will install a 1693 hardlink for zfsloader to loader to allow a smooth transition 1694 until the boot blocks can be updated (hard link because old 1695 zfs boot blocks don't understand symlinks). 1696 169720180719: 1698 ARM64 now have efifb support, if you want to have serial console 1699 on your arm64 board when an screen is connected and the bootloader 1700 setup a frame buffer for us to use, just add : 1701 boot_serial=YES 1702 boot_multicons=YES 1703 in /boot/loader.conf 1704 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 1705 an screen connected as the firmware will setup a frame buffer are that 1706 u-boot will expose as an EFI frame buffer. 1707 170820180719: 1709 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 1710 or take steps to update /etc/passwd before doing installworld on 1711 existing systems. Do not skip the "mergemaster -Fp" step before 1712 installworld, as described in the update procedures near the bottom 1713 of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 1714 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 1715 the ntp config file contain options that change file/dir locations. 1716 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 1717 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 1718 taking steps to ensure that all required files/dirs are accessible 1719 by the ntpd user. 1720 172120180717: 1722 Big endian arm support has been removed. 1723 172420180711: 1725 The static environment setup in kernel configs is no longer mutually 1726 exclusive with the loader(8) environment by default. In order to 1727 restore the previous default behavior of disabling the loader(8) 1728 environment if a static environment is present, you must specify 1729 loader_env.disabled=1 in the static environment. 1730 173120180705: 1732 The ABI of syscalls used by management tools like sockstat and 1733 netstat has been broken to allow 32-bit binaries to work on 1734 64-bit kernels without modification. These programs will need 1735 to match the kernel in order to function. External programs may 1736 require minor modifications to accommodate a change of type in 1737 structures from pointers to 64-bit virtual addresses. 1738 173920180702: 1740 On i386 and amd64 atomics are now inlined. Out of tree modules using 1741 atomics will need to be rebuilt. 1742 174320180701: 1744 The '%I' format in the kern.corefile sysctl limits the number of 1745 core files that a process can generate to the number stored in the 1746 debug.ncores sysctl. The '%I' format is replaced by the single digit 1747 index. Previously, if all indexes were taken the kernel would overwrite 1748 only a core file with the highest index in a filename. 1749 Currently the system will create a new core file if there is a free 1750 index or if all slots are taken it will overwrite the oldest one. 1751 175220180630: 1753 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1754 6.0.1. Please see the 20141231 entry below for information about 1755 prerequisites and upgrading, if you are not already using clang 3.5.0 1756 or higher. 1757 175820180628: 1759 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 1760 needed to be changed to work with it. This change was made with r335763 1761 and requires a mergemaster / etcupdate / etc to update the installed 1762 file. 1763 176420180612: 1765 r334930 changed the interface between the NFS modules, so they all 1766 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 1767 176820180530: 1769 As of r334391 lld is the default amd64 system linker; it is installed 1770 as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no 1771 longer necessary. 1772 177320180530: 1774 The kernel / userland interface for devinfo changed, so you'll 1775 need a new kernel and userland as a pair for it to work (rebuilding 1776 lib/libdevinfo is all that's required). devinfo and devmatch will 1777 not work, but everything else will when there's a mismatch. 1778 177920180523: 1780 The on-disk format for hwpmc callchain records has changed to include 1781 threadid corresponding to a given record. This changes the field offsets 1782 and thus requires that libpmcstat be rebuilt before using a kernel 1783 later than r334108. 1784 178520180517: 1786 The vxge(4) driver has been removed. This driver was introduced into 1787 HEAD one week before the Exar left the Ethernet market and is not 1788 known to be used. If you have device vxge in your kernel config file 1789 it must be removed. 1790 179120180510: 1792 The amd64 kernel now requires a ld that supports ifunc to produce a 1793 working kernel, either lld or a newer binutils. lld is built by default 1794 on amd64, and the 'buildkernel' target uses it automatically. However, 1795 it is not the default linker, so building the kernel the traditional 1796 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 1797 binutils port/package). lld will soon be default, and this requirement 1798 will go away. 1799 1800 NOTE: As of r334391 lld is the default system linker on amd64, and no 1801 workaround is necessary. 1802 180320180508: 1804 The nxge(4) driver has been removed. This driver was for PCI-X 10g 1805 cards made by s2io/Neterion. The company was acquired by Exar and 1806 no longer sells or supports Ethernet products. If you have device 1807 nxge in your kernel config file it must be removed. 1808 180920180504: 1810 The tz database (tzdb) has been updated to 2018e. This version more 1811 correctly models time stamps in time zones with negative DST such as 1812 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 1813 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 1814 time zone abbreviations and the tm_isdst flag. 1815 181620180502: 1817 The ixgb(4) driver has been removed. This driver was for an early and 1818 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 1819 quickly shifted to the long lived ixgbe family. If you have device 1820 ixgb in your kernel config file it must be removed. 1821 182220180501: 1823 The lmc(4) driver has been removed. This was a WAN interface 1824 card that was already reportedly rare in 2003, and had an ambiguous 1825 license. If you have device lmc in your kernel config file it must 1826 be removed. 1827 182820180413: 1829 Support for Arcnet networks has been removed. If you have device 1830 arcnet or device cm in your kernel config file they must be 1831 removed. 1832 183320180411: 1834 Support for FDDI networks has been removed. If you have device 1835 fddi or device fpa in your kernel config file they must be 1836 removed. 1837 183820180406: 1839 In addition to supporting RFC 3164 formatted messages, the 1840 syslogd(8) service is now capable of parsing RFC 5424 formatted 1841 log messages. The main benefit of using RFC 5424 is that clients 1842 may now send log messages with timestamps containing year numbers, 1843 microseconds and time zone offsets. 1844 1845 Similarly, the syslog(3) C library function has been altered to 1846 send RFC 5424 formatted messages to the local system logging 1847 daemon. On systems using syslogd(8), this change should have no 1848 negative impact, as long as syslogd(8) and the C library are 1849 updated at the same time. On systems using a different system 1850 logging daemon, it may be necessary to make configuration 1851 adjustments, depending on the software used. 1852 1853 When using syslog-ng, add the 'syslog-protocol' flag to local 1854 input sources to enable parsing of RFC 5424 formatted messages: 1855 1856 source src { 1857 unix-dgram("/var/run/log" flags(syslog-protocol)); 1858 } 1859 1860 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 1861 of the 'imuxsock' module to let messages be processed by the 1862 regular RFC 3164/5424 parsing pipeline: 1863 1864 module(load="imuxsock" SysSock.UseSpecialParser="off") 1865 1866 Do note that these changes only affect communication between local 1867 applications and syslogd(8). The format that syslogd(8) uses to 1868 store messages on disk or forward messages to other systems 1869 remains unchanged. syslogd(8) still uses RFC 3164 for these 1870 purposes. Options to customize this behaviour will be added in the 1871 future. Utilities that process log files stored in /var/log are 1872 thus expected to continue to function as before. 1873 1874 __FreeBSD_version has been incremented to 1200061 to denote this 1875 change. 1876 187720180328: 1878 Support for token ring networks has been removed. If you 1879 have "device token" in your kernel config you should remove 1880 it. No device drivers supported token ring. 1881 188220180323: 1883 makefs was modified to be able to tag ISO9660 El Torito boot catalog 1884 entries as EFI instead of overloading the i386 tag as done previously. 1885 The amd64 mkisoimages.sh script used to build amd64 ISO images for 1886 release was updated to use this. This may mean that makefs must be 1887 updated before "make cdrom" can be run in the release directory. This 1888 should be as simple as: 1889 1890 $ cd $SRCDIR/usr.sbin/makefs 1891 $ make depend all install 1892 189320180212: 1894 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 1895 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 1896 Co-existence for the transition period will come shortly. Booting is a 1897 complex environment and test coverage for Lua-enabled loaders has been 1898 thin, so it would be prudent to assume it might not work and make 1899 provisions for backup boot methods. 1900 190120180211: 1902 devmatch functionality has been turned on in devd. It will automatically 1903 load drivers for unattached devices. This may cause unexpected drivers 1904 to be loaded. Please report any problems to current@ and 1905 imp@freebsd.org. 1906 190720180114: 1908 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1909 6.0.0. Please see the 20141231 entry below for information about 1910 prerequisites and upgrading, if you are not already using clang 3.5.0 1911 or higher. 1912 191320180110: 1914 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 1915 This means it is used to link the kernel and userland libraries and 1916 executables, but is not yet installed as /usr/bin/ld by default. 1917 1918 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 1919 WITHOUT_LLD_BOOTSTRAP=yes 1920 192120180110: 1922 On i386, pmtimer has been removed. Its functionality has been folded 1923 into apm. It was a no-op on ACPI in current for a while now (but was 1924 still needed on i386 in FreeBSD 11 and earlier). Users may need to 1925 remove it from kernel config files. 1926 192720180104: 1928 The use of RSS hash from the network card aka flowid has been 1929 disabled by default for lagg(4) as it's currently incompatible with 1930 the lacp and loadbalance protocols. 1931 1932 This can be re-enabled by setting the following in loader.conf: 1933 net.link.lagg.default_use_flowid="1" 1934 193520180102: 1936 The SW_WATCHDOG option is no longer necessary to enable the 1937 hardclock-based software watchdog if no hardware watchdog is 1938 configured. As before, SW_WATCHDOG will cause the software 1939 watchdog to be enabled even if a hardware watchdog is configured. 1940 194120171215: 1942 r326887 fixes the issue described in the 20171214 UPDATING entry. 1943 r326888 flips the switch back to building GELI support always. 1944 194520171214: 1946 r362593 broke ZFS + GELI support for reasons unknown. However, 1947 it also broke ZFS support generally, so GELI has been turned off 1948 by default as the lesser evil in r326857. If you boot off ZFS and/or 1949 GELI, it might not be a good time to update. 1950 195120171125: 1952 PowerPC users must update loader(8) by rebuilding world before 1953 installing a new kernel, as the protocol connecting them has 1954 changed. Without the update, loader metadata will not be passed 1955 successfully to the kernel and users will have to enter their 1956 root partition at the kernel mountroot prompt to continue booting. 1957 Newer versions of loader can boot old kernels without issue. 1958 195920171110: 1960 The LOADER_FIREWIRE_SUPPORT build variable has been renamed to 1961 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 1962 to WITH/OUT_LOADER_GELI. 1963 196420171106: 1965 The naive and non-compliant support of posix_fallocate(2) in ZFS 1966 has been removed as of r325320. The system call now returns EINVAL 1967 when used on a ZFS file. Although the new behavior complies with the 1968 standard, some consumers are not prepared to cope with it. 1969 One known victim is lld prior to r325420. 1970 197120171102: 1972 Building in a FreeBSD src checkout will automatically create object 1973 directories now rather than store files in the current directory if 1974 'make obj' was not ran. Calling 'make obj' is no longer necessary. 1975 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 1976 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 1977 environment. 1978 197920171101: 1980 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 1981 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 1982 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 1983 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 1984 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 1985 The UNIFIED_OBJDIR option is a transitional feature that will be 1986 removed for 12.0 release; please migrate to the new format for any 1987 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 1988 than hardcoding paths. 1989 199020171028: 1991 The native-xtools target no longer installs the files by default to the 1992 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 1993 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 1994 199520171021: 1996 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 1997 options are changing from controlling the build if defined / undefined 1998 to controlling the build with explicit 'yes' or 'no' values. They will 1999 shift to WITH/WITHOUT options to match other options in the system. 2000 200120171010: 2002 libstand has turned into a private library for sys/boot use only. 2003 It is no longer supported as a public interface outside of sys/boot. 2004 200520171005: 2006 The arm port has split armv6 into armv6 and armv7. armv7 is now 2007 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 2008 and are running a kernel from before r324363, you will need to add 2009 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 2010 201120171003: 2012 When building multiple kernels using KERNCONF, non-existent KERNCONF 2013 files will produce an error and buildkernel will fail. Previously 2014 missing KERNCONF files silently failed giving no indication as to 2015 why, only to subsequently discover during installkernel that the 2016 desired kernel was never built in the first place. 2017 201820170912: 2019 The default serial number format for CTL LUNs has changed. This will 2020 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 2021 or iSCSI clients care about their LUNs' serial numbers. Users who 2022 require serial number stability should hardcode serial numbers in 2023 /etc/ctl.conf . 2024 202520170912: 2026 For 32-bit arm compiled for hard-float support, soft-floating point 2027 binaries now always get their shared libraries from 2028 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 2029 /usr/libsoft also existed). Only users with a hard-float ld.so, but 2030 soft-float everything else should be affected. 2031 203220170826: 2033 The geli password typed at boot is now hidden. To restore the previous 2034 behavior, see geli(8) for configuration options. 2035 203620170825: 2037 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 2038 sysctl values. Minor nit, but requires a rebuild of both world/kernel 2039 to complete. 2040 204120170814: 2042 "make check" behavior (made in ^/head@r295380) has been changed to 2043 execute from a limited sandbox, as opposed to executing from 2044 ${TESTSDIR}. 2045 2046 Behavioral changes: 2047 - The "beforecheck" and "aftercheck" targets are now specified. 2048 - ${CHECKDIR} (added in commit noted above) has been removed. 2049 - Legacy behavior can be enabled by setting 2050 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 2051 2052 If the limited sandbox mode is enabled, "make check" will execute 2053 "make distribution", then install, execute the tests, and clean up the 2054 sandbox if successful. 2055 2056 The "make distribution" and "make install" targets are typically run as 2057 root to set appropriate permissions and ownership at installation time. 2058 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 2059 environment if executing "make check" with limited sandbox mode using 2060 an unprivileged user. 2061 206220170808: 2063 Since the switch to GPT disk labels, fsck for UFS/FFS has been 2064 unable to automatically find alternate superblocks. As of r322297, 2065 the information needed to find alternate superblocks has been 2066 moved to the end of the area reserved for the boot block. 2067 Filesystems created with a newfs of this vintage or later 2068 will create the recovery information. If you have a filesystem 2069 created prior to this change and wish to have a recovery block 2070 created for your filesystem, you can do so by running fsck in 2071 foreground mode (i.e., do not use the -p or -y options). As it 2072 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 2073 to which you should answer yes. 2074 207520170728: 2076 As of r321665, an NFSv4 server configuration that services 2077 Kerberos mounts or clients that do not support the uid/gid in 2078 owner/owner_group string capability, must explicitly enable 2079 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 2080 machine's /etc/rc.conf file. 2081 208220170722: 2083 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 2084 Please see the 20141231 entry below for information about prerequisites 2085 and upgrading, if you are not already using clang 3.5.0 or higher. 2086 208720170701: 2088 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 2089 r-commands (rlogin, rsh, etc.) to be built with the base system. 2090 209120170625: 2092 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 2093 a very major ABI incompatible change, so users of FreeBSD/powerpc must 2094 be careful when performing source upgrades. It is best to run 2095 'make installworld' from an alternate root system, either a live 2096 CD/memory stick, or a temporary root partition. Additionally, all ports 2097 must be recompiled. powerpc64 is largely unaffected, except in the case 2098 of 32-bit compatibility. All 32-bit binaries will be affected. 2099 210020170623: 2101 Forward compatibility for the "ino64" project have been committed. This 2102 will allow most new binaries to run on older kernels in a limited 2103 fashion. This prevents many of the common foot-shooting actions in the 2104 upgrade as well as the limited ability to roll back the kernel across 2105 the ino64 upgrade. Complicated use cases may not work properly, though 2106 enough simpler ones work to allow recovery in most situations. 2107 210820170620: 2109 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 2110 if you require the GPL compiler. 2111 211220170619: 2113 Forward compatibility for the "ino64" project have been committed. This 2114 will allow most new binaries to run on older kernels in a limited 2115 fashion. This prevents many of the common foot-shooting actions in the 2116 upgrade as well as the limited ability to roll back the kernel across 2117 the ino64 upgrade. Complicated use cases may not work properly, though 2118 enough simpler ones work to allow recovery in most situations. 2119 212020170618: 2121 The internal ABI used for communication between the NFS kernel modules 2122 was changed by r320085, so __FreeBSD_version was bumped to 2123 ensure all the NFS related modules are updated together. 2124 212520170617: 2126 The ABI of struct event was changed by extending the data 2127 member to 64bit and adding ext fields. For upgrade, same 2128 precautions as for the entry 20170523 "ino64" must be 2129 followed. 2130 213120170531: 2132 The GNU roff toolchain has been removed from base. To render manpages 2133 which are not supported by mandoc(1), man(1) can fallback on GNU roff 2134 from ports (and recommends to install it). 2135 To render roff(7) documents, consider using GNU roff from ports or the 2136 heirloom doctools roff toolchain from ports via pkg install groff or 2137 via pkg install heirloom-doctools. 2138 213920170524: 2140 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 2141 smaller runtime footprint builds. This is useful for embedded systems 2142 which only require one chipset support. 2143 2144 If you load it as a module, make sure this is in /boot/loader.conf: 2145 2146 if_ath_load="YES" 2147 2148 This will load the HAL, all chip/RF backends and if_ath_pci. 2149 If you have if_ath_pci in /boot/loader.conf, ensure it is after 2150 if_ath or it will not load any HAL chipset support. 2151 2152 If you want to selectively load things (eg on cheaper ARM/MIPS 2153 platforms where RAM is at a premium) you should: 2154 2155 * load ath_hal 2156 * load the chip modules in question 2157 * load ath_rate, ath_dfs 2158 * load ath_main 2159 * load if_ath_pci and/or if_ath_ahb depending upon your particular 2160 bus bind type - this is where probe/attach is done. 2161 2162 For further comments/feedback, poke adrian@ . 2163 216420170523: 2165 The "ino64" 64-bit inode project has been committed, which extends 2166 a number of types to 64 bits. Upgrading in place requires care and 2167 adherence to the documented upgrade procedure. 2168 2169 If using a custom kernel configuration ensure that the 2170 COMPAT_FREEBSD11 option is included (as during the upgrade the 2171 system will be running the ino64 kernel with the existing world). 2172 2173 For the safest in-place upgrade begin by removing previous build 2174 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full 2175 procedure documented below under the heading "To rebuild everything and 2176 install it on the current system." Specifically, a reboot is required 2177 after installing the new kernel before installing world. While an 2178 installworld normally works by accident from multiuser after rebooting 2179 the proper kernel, there are many cases where this will fail across this 2180 upgrade and installworld from single user is required. 2181 218220170424: 2183 The NATM framework including the en(4), fatm(4), hatm(4), and 2184 patm(4) devices has been removed. Consumers should plan a 2185 migration before the end-of-life date for FreeBSD 11. 2186 218720170420: 2188 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 2189 diff has not been implemented, if those are needed a newer version of 2190 GNU diff is available via the diffutils package under the gdiff name. 2191 219220170413: 2193 As of r316810 for ipfilter, keep frags is no longer assumed when 2194 keep state is specified in a rule. r316810 aligns ipfilter with 2195 documentation in man pages separating keep frags from keep state. 2196 This allows keep state to be specified without forcing keep frags 2197 and allows keep frags to be specified independently of keep state. 2198 To maintain previous behaviour, also specify keep frags with 2199 keep state (as documented in ipf.conf.5). 2200 220120170407: 2202 arm64 builds now use the base system LLD 4.0.0 linker by default, 2203 instead of requiring that the aarch64-binutils port or package be 2204 installed. To continue using aarch64-binutils, set 2205 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 2206 220720170405: 2208 The UDP optimization in entry 20160818 that added the sysctl 2209 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 2210 packets will no longer be treated as L3 broadcast packets. 2211 221220170331: 2213 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 2214 use any explicitly assigned loopback address available in the jail 2215 instead of using the first assigned address of the jail. 2216 221720170329: 2218 The ctl.ko module no longer implements the iSCSI target frontend: 2219 cfiscsi.ko does instead. 2220 2221 If building cfiscsi.ko as a kernel module, the module can be loaded 2222 via one of the following methods: 2223 - `cfiscsi_load="YES"` in loader.conf(5). 2224 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 2225 - ctladm(8)/ctld(8), when compiled with iSCSI support 2226 (`WITH_ISCSI=yes` in src.conf(5)) 2227 2228 Please see cfiscsi(4) for more details. 2229 223020170316: 2231 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 2232 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 2233 same source (previously, the dependency of mmcsd.ko on mmc.ko was 2234 missing, but mmcsd.ko now will refuse to load if it is incompatible 2235 with mmc.ko). 2236 223720170315: 2238 The syntax of ipfw(8) named states was changed to avoid ambiguity. 2239 If you have used named states in the firewall rules, you need to modify 2240 them after installworld and before rebooting. Now named states must 2241 be prefixed with colon. 2242 224320170311: 2244 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 2245 removed as the userland we provide cannot use them. The KMS version 2246 (sys/dev/drm2) supports the same hardware. 2247 224820170302: 2249 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 2250 Please see the 20141231 entry below for information about prerequisites 2251 and upgrading, if you are not already using clang 3.5.0 or higher. 2252 225320170221: 2254 The code that provides support for ZFS .zfs/ directory functionality 2255 has been reimplemented. It's not possible now to create a snapshot 2256 by mkdir under .zfs/snapshot/. That should be the only user visible 2257 change. 2258 225920170216: 2260 EISA bus support has been removed. The WITH_EISA option is no longer 2261 valid. 2262 226320170215: 2264 MCA bus support has been removed. 2265 226620170127: 2267 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 2268 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 2269 227020170112: 2271 The EM_MULTIQUEUE kernel configuration option is deprecated now that 2272 the em(4) driver conforms to iflib specifications. 2273 227420170109: 2275 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 2276 IFLIB. If you have a custom kernel configuration that excludes em(4) 2277 but you use igb(4), you need to re-add em(4) to your custom 2278 configuration. 2279 228020161217: 2281 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 2282 Please see the 20141231 entry below for information about prerequisites 2283 and upgrading, if you are not already using clang 3.5.0 or higher. 2284 228520161124: 2286 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 2287 Please see the 20141231 entry below for information about prerequisites 2288 and upgrading, if you are not already using clang 3.5.0 or higher. 2289 229020161119: 2291 The layout of the pmap structure has changed for powerpc to put the pmap 2292 statistics at the front for all CPU variations. libkvm(3) and all tools 2293 that link against it need to be recompiled. 2294 229520161030: 2296 isl(4) and cyapa(4) drivers now require a new driver, 2297 chromebook_platform(4), to work properly on Chromebook-class hardware. 2298 On other types of hardware the drivers may need to be configured using 2299 device hints. Please see the corresponding manual pages for details. 2300 230120161017: 2302 The urtwn(4) driver was merged into rtwn(4) and now consists of 2303 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 2304 parts. 2305 Also, firmware for RTL8188CE was renamed due to possible name 2306 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 2307 230820161015: 2309 GNU rcs has been removed from base. It is available as packages: 2310 - rcs: Latest GPLv3 GNU rcs version. 2311 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 2312 removed from base. 2313 231420161008: 2315 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 2316 modules now requires that the kernel configuration contain the 2317 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 2318 231920161003: 2320 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 2321 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 2322 232320160924: 2324 Relocatable object files with the extension of .So have been renamed 2325 to use an extension of .pico instead. The purpose of this change is 2326 to avoid a name clash with shared libraries on case-insensitive file 2327 systems. On those file systems, foo.So is the same file as foo.so. 2328 232920160918: 2330 GNU rcs has been turned off by default. It can (temporarily) be built 2331 again by adding WITH_RCS knob in src.conf. 2332 Otherwise, GNU rcs is available from packages: 2333 - rcs: Latest GPLv3 GNU rcs version. 2334 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 2335 233620160918: 2337 The backup_uses_rcs functionality has been removed from rc.subr. 2338 233920160908: 2340 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 2341 two separate components, QUEUE_MACRO_DEBUG_TRACE and 2342 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 2343 QUEUE_MACRO_DEBUG behavior. 2344 234520160824: 2346 r304787 changed some ioctl interfaces between the iSCSI userspace 2347 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 2348 rebuilt to work with new kernels. __FreeBSD_version has been bumped 2349 to 1200005. 2350 235120160818: 2352 The UDP receive code has been updated to only treat incoming UDP 2353 packets that were addressed to an L2 broadcast address as L3 2354 broadcast packets. It is not expected that this will affect any 2355 standards-conforming UDP application. The new behaviour can be 2356 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 2357 0. 2358 235920160818: 2360 Remove the openbsd_poll system call. 2361 __FreeBSD_version has been bumped because of this. 2362 236320160708: 2364 The stable/11 branch has been created from head@r302406. 2365 2366After branch N is created, entries older than the N-2 branch point are removed 2367from this file. After stable/14 is branched and current becomes FreeBSD 15, 2368entries older than stable/12 branch point will be removed from current's 2369UPDATING file. 2370 2371COMMON ITEMS: 2372 2373 General Notes 2374 ------------- 2375 Sometimes, obscure build problems are the result of environment 2376 poisoning. This can happen because the make utility reads its 2377 environment when searching for values for global variables. To run 2378 your build attempts in an "environmental clean room", prefix all make 2379 commands with 'env -i '. See the env(1) manual page for more details. 2380 Occasionally a build failure will occur with "make -j" due to a race 2381 condition. If this happens try building again without -j, and please 2382 report a bug if it happens consistently. 2383 2384 When upgrading from one major version to another it is generally best to 2385 upgrade to the latest code in the currently installed branch first, then 2386 do an upgrade to the new branch. This is the best-tested upgrade path, 2387 and has the highest probability of being successful. Please try this 2388 approach if you encounter problems with a major version upgrade. Since 2389 the stable 4.x branch point, one has generally been able to upgrade from 2390 anywhere in the most recent stable branch to head / current (or even the 2391 last couple of stable branches). See the top of this file when there's 2392 an exception. 2393 2394 The update process will emit an error on an attempt to perform a build 2395 or install from a FreeBSD version below the earliest supported version. 2396 When updating from an older version the update should be performed one 2397 major release at a time, including running `make delete-old` at each 2398 step. 2399 2400 When upgrading a live system, having a root shell around before 2401 installing anything can help undo problems. Not having a root shell 2402 around can lead to problems if pam has changed too much from your 2403 starting point to allow continued authentication after the upgrade. 2404 2405 This file should be read as a log of events. When a later event changes 2406 information of a prior event, the prior event should not be deleted. 2407 Instead, a pointer to the entry with the new information should be 2408 placed in the old entry. Readers of this file should also sanity check 2409 older entries before relying on them blindly. Authors of new entries 2410 should write them with this in mind. 2411 2412 ZFS notes 2413 --------- 2414 When upgrading the boot ZFS pool to a new version (via zpool upgrade), 2415 always follow these three steps: 2416 2417 1) recompile and reinstall the ZFS boot loader and boot block 2418 (this is part of "make buildworld" and "make installworld") 2419 2420 2) update the ZFS boot block on your boot drive (only required when 2421 doing a zpool upgrade): 2422 2423 When booting on x86 via BIOS, use the following to update the ZFS boot 2424 block on the freebsd-boot partition of a GPT partitioned drive ada0: 2425 gpart bootcode -p /boot/gptzfsboot -i $N ada0 2426 The value $N will typically be 1. For EFI booting, see EFI notes. 2427 2428 3) zpool upgrade the root pool. New bootblocks will work with old 2429 pools, but not vice versa, so they need to be updated before any 2430 zpool upgrade. 2431 2432 Non-boot pools do not need these updates. 2433 2434 EFI notes 2435 --------- 2436 2437 There are two locations the boot loader can be installed into. The 2438 current location (and the default) is \efi\freebsd\loader.efi and using 2439 efibootmgr(8) to configure it. The old location, that must be used on 2440 deficient systems that don't honor efibootmgr(8) protocols, is the 2441 fallback location of \EFI\BOOT\BOOTxxx.EFI. Generally, you will copy 2442 /boot/loader.efi to this location, but on systems installed a long time 2443 ago the ESP may be too small and /boot/boot1.efi may be needed unless 2444 the ESP has been expanded in the meantime. 2445 2446 Recent systems will have the ESP mounted on /boot/efi, but older ones 2447 may not have it mounted at all, or mounted in a different 2448 location. Older arm SD images with MBR used /boot/msdos as the 2449 mountpoint. The ESP is a MSDOS filesystem. 2450 2451 The EFI boot loader rarely needs to be updated. For ZFS booting, 2452 however, you must update loader.efi before you do 'zpool upgrade' the 2453 root zpool, otherwise the old loader.efi may reject the upgraded zpool 2454 since it does not automatically understand some new features. 2455 2456 See loader.efi(8) and uefi(8) for more details. 2457 2458 To build a kernel 2459 ----------------- 2460 If you are updating from a prior version of FreeBSD (even one just 2461 a few days old), you should follow this procedure. It is the most 2462 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2463 2464 make kernel-toolchain 2465 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2466 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 2467 2468 If you are running kernel modules from ports, see FOOTNOTE [1]. 2469 2470 To test a kernel once 2471 --------------------- 2472 If you just want to boot a kernel once (because you are not sure 2473 if it works, or if you want to boot a known bad kernel to provide 2474 debugging information) run 2475 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2476 nextboot -k testkernel 2477 2478 To rebuild everything and install it on the current system. 2479 ----------------------------------------------------------- 2480 # Note: sometimes if you are running current you gotta do more than 2481 # is listed here if you are upgrading from a really old current. 2482 2483 <make sure you have good level 0 dumps> [2] 2484 make buildworld 2485 <make sure any needed PORTS_MODULES are set> [1] 2486 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2487 make installkernel KERNCONF=YOUR_KERNEL_HERE 2488 <reboot in single user> [3] 2489 etcupdate -p [5] 2490 make installworld 2491 etcupdate -B [4] 2492 make delete-old [6] 2493 <reboot> 2494 2495 To cross-install current onto a separate partition 2496 -------------------------------------------------- 2497 # In this approach we use a separate partition to hold 2498 # current's root, 'usr', and 'var' directories. A partition 2499 # holding "/", "/usr" and "/var" should be about 2GB in 2500 # size. 2501 2502 <make sure you have good level 0 dumps> 2503 <boot into -stable> 2504 make buildworld 2505 make buildkernel KERNCONF=YOUR_KERNEL_HERE [1] 2506 <maybe newfs current's root partition> 2507 <mount current's root partition on directory ${CURRENT_ROOT}> 2508 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 2509 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2510 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2511 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2512 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2513 <reboot into current> 2514 <do a "native" rebuild/install as described in the previous section> 2515 <maybe install compatibility libraries from ports/misc/compat*> 2516 <reboot> 2517 2518 2519 To upgrade in-place from stable to current 2520 ---------------------------------------------- 2521 <make sure you have good level 0 dumps> [2] 2522 make buildworld [9] 2523 <make sure any needed PORTS_MODULES are set> [1] 2524 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 2525 make installkernel KERNCONF=YOUR_KERNEL_HERE 2526 <reboot in single user> [3] 2527 etcupdate -p [5] 2528 make installworld 2529 etcupdate -B [4] 2530 make delete-old [6] 2531 <reboot> 2532 2533 Make sure that you've read the UPDATING file to understand the 2534 tweaks to various things you need. At this point in the life 2535 cycle of current, things change often and you are on your own 2536 to cope. The defaults can also change, so please read ALL of 2537 the UPDATING entries. 2538 2539 Also, if you are tracking -current, you must be subscribed to 2540 freebsd-current@freebsd.org. Make sure that before you update 2541 your sources that you have read and understood all the recent 2542 messages there. If in doubt, please track -stable which has 2543 much fewer pitfalls. 2544 2545FOOTNOTES: 2546 2547 [1] If you have third party modules, such as drm-kmod or vmware, you 2548 should disable them at this point so they don't crash your system on 2549 reboot. Alternatively, you should rebuild all the modules you have in 2550 your system and install them as well. If you are running -current, you 2551 should seriously consider placing all sources to all the modules for 2552 your system (or symlinks to them) in /usr/local/sys/modules so this 2553 happens automatically. If all your modules come from ports, then adding 2554 the port origin directories to PORTS_MODULES instead is also automatic 2555 and effective, eg: 2556 PORTS_MODULES+=graphics/drm-kmod graphics/nvidia-drm-kmod 2557 2558 [2] To make complete dumps on zfs(4), use bectl(8), which 2559 creates bootable snapshots of configurable depth that are 2560 selectable via the bootloader. For ufs(4), use dump(8) and 2561 restore(8). 2562 2563 [3] From the bootblocks, boot -s, and then do 2564 fsck -p 2565 mount -u / 2566 mount -a 2567 sh /etc/rc.d/zfs start # mount zfs filesystem, if needed 2568 cd src # full path to source 2569 adjkerntz -i # if CMOS is wall time 2570 Also, when doing a major release upgrade, it is required that you boot 2571 into single user mode to do the installworld. 2572 2573 [4] Note: This step is non-optional. Failure to do this step 2574 can result in a significant reduction in the functionality of the 2575 system. Attempting to do it by hand is not recommended and those 2576 that pursue this avenue should read this file carefully, as well 2577 as the archives of freebsd-current and freebsd-hackers mailing lists 2578 for potential gotchas. See etcupdate(8) for more information. 2579 2580 [5] Usually this step is a no-op. However, from time to time 2581 you may need to do this if you get unknown user in the following 2582 step. 2583 2584 [6] This only deletes old files and directories. Old libraries 2585 can be deleted by "make delete-old-libs", but you have to make 2586 sure that no program is using those libraries anymore. 2587 2588 [8] The new kernel must be able to run existing binaries used by an 2589 installworld. When upgrading across major versions, the new kernel's 2590 configuration must include the correct COMPAT_FREEBSD<n> option for 2591 existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure 2592 to do so may leave you with a system that is hard to boot to recover. A 2593 GENERIC kernel will include suitable compatibility options to run 2594 binaries from older branches. Note that the ability to run binaries 2595 from unsupported branches is not guaranteed. 2596 2597 Make sure that you merge any new devices from GENERIC since the 2598 last time you updated your kernel config file. Options also 2599 change over time, so you may need to adjust your custom kernels 2600 for these as well. 2601 2602 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2603 "?=" instead of the "=" assignment operator, so that buildworld can 2604 override the CPUTYPE if it needs to. 2605 2606 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2607 not on the command line, or in /etc/make.conf. buildworld will 2608 warn if it is improperly defined. 2609FORMAT: 2610 2611This file contains a list, in reverse chronological order, of major 2612breakages in tracking -current. It is not guaranteed to be a complete 2613list of such breakages, and only contains entries since September 23, 2011. 2614If you need to see UPDATING entries from before that date, you will need 2615to fetch an UPDATING file from an older FreeBSD release. 2616 2617Copyright information: 2618 2619Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> 2620 2621Redistribution, publication, translation and use, with or without 2622modification, in full or in part, in any form or format of this 2623document are permitted without further permission from the author. 2624 2625THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2626IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2627WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2628DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2629INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2630(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2631SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2632HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2633STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2634IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2635POSSIBILITY OF SUCH DAMAGE. 2636 2637Contact Warner Losh if you have any questions about your use of 2638this document. 2639