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 15.x IS SLOW: 16 FreeBSD 15.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 3020240729: 31 The build now defaults to WITHOUT_CLEAN - i.e., no automatic clean 32 is performed at the beginning of buildworld or buildkernel. The 33 WITH_CLEAN src.conf(5) knob can be used to restore the previous 34 behaviour. 35 36 If you encounter incremental build issues, please report them to the 37 freebsd-current mailing list so that a special-case dependency can be 38 added, if necessary. 39 4020240712: 41 Support for armv6 has been disconnected and is being removed. 42 4320240617: 44 ifconfig now treats IPv4 addresses without a width or mask as an error. 45 Specify the desired mask or width along with the IP address on the 46 ifconfig command line and in rc.conf. 47 4820240428: 49 OpenBSM auditing runtime (auditd, etc.) has been moved into the new 50 package FreeBSD-audit. If you use OpenBSM auditing and pkgbase, you 51 should install FreeBSD-audit. 52 5320240424: 54 cron, lpr, and ntpd have been moved from FreeBSD-utilities into their 55 own packages. If you use pkgbase, you should install the relevant 56 packages: FreeBSD-cron, FreeBSD-lp, or FreeBSD-ntp. 57 5820240406: 59 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 60 been upgraded to 18.1.6. It is important that you run `make delete-old` 61 as described in the COMMON ITEMS section, otherwise several libc++ 62 headers that are obsolete and need to be removed can cause compilation 63 errors in C++ programs. 64 6520240205: 66 For dynamically linked programs, system calls are now made from 67 libsys rather than libc. No change in linkage is required as 68 libsys is an auxiliary filter for libc. People building custom 69 images must ensure that libsys.so.7 is included. 70 7120240202: 72 Loader now also read configuration files listed in local_loader_conf_files. 73 Files listed here are the last ones read. And /boot/loader.conf.local was 74 moved from loader_conf_files to local_loader_conf_files leaving only 75 loader.conf and device.hints in loader_conf_files by default. 76 77 The following sequencing is applied: 78 79 1. Bootstrap: 80 /boot/defaults/loader.conf 81 82 2. Read loader_conf_files files: 83 /boot/device.hints 84 /boot/loader.conf 85 86 3. Read loader_conf_dirs files: 87 /boot/loader.conf.d/*.conf 88 89 4. And finally, rread local_loader_conf_files files: 90 /boot/loader.conf.local 91 9220240201: 93 sendmail 8.18.1 has been imported and merged. This version enforces 94 stricter RFC compliance by default, especially with respect to line 95 endings. This may cause issues with receiving messages from 96 non-compliant MTAs; please see the first 8.18.1 release note in 97 contrib/sendmail/RELEASE_NOTES for mitigations. 98 9920240111: 100 Commit cc760de2183f changed the internal interface between 101 the nfscommon and nfscl modules. As such, both need to be 102 rebuilt from sources. Therefore, __FreeBSD_version was 103 bumped to 1500010. 104 10520231120: 106 If you have an arm64 system that uses ACPI, you will need to update your 107 loader.efi in the ESP when you update past this point. Detection of ACPI 108 was moved earlier in the binary so the scripts could use it, but old 109 binaries don't have this, so we default to 'no ACPI' in this case. You can 110 undisable ACPI by doing 111 OK unset hint.acpi.0.disabled 112 This can also be used to recover any other system that was updated in the 113 small window where amd64 was also broken. 114 11520231113: 116 The WITHOUT_LLD_IS_LD option has been removed. When LLD is enabled 117 it is always installed as /usr/bin/ld. 118 11920231027: 120 Forward compatibility (running the new code on old kernels) for the 121 "ino64" project have been removed. The need for it has passed long ago. 122 12320231018: 124 Commit 57ce37f9dcd0 changed the internal KAPI between the 125 nfscommon and nfscl modules. Both must be rebuilt from sources. 126 12720231010: 128 dialog(1) has been replaced in base by bsddialog(1), while most of the 129 time replacing a dialog(1) call by a bsddialog(1) call works out of the 130 box, bsddialog(1) is not considered as a drop-in replacement for 131 dialog(1). 132 133 If you do depend on dialog(1) functionality, please install cdialog 134 from ports: 135 136 pkg install cdialog 137 13820230927: 139 The EARLY_AP_STARTUP kernel option is mandatory on x86. The option 140 has been added to DEFAULTS, so it should automatically be included in 141 custom kernel configurations without any additional change. 142 14320230922: 144 A new loader tunable net.pf.default_to_drop allows pf(4)’s default 145 behaviour to be changed from pass to drop. Previously this required 146 recompiling the kernel with the option PF_DEFAULT_TO_DROP. 147 14820230914: 149 Enable splitting out pkgbase manpages into separate packages by 150 default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf. 151 15220230911: 153 Move standard include files to the clibs-dev package and move clang 154 internal libraries and headers to clang and clang-dev. Upgrading systems 155 installed using pkgbase past this change involves extra steps to allow 156 for these file moves: 157 158 pkg upgrade -y FreeBSD-utilities 159 pkg upgrade -y FreeBSD-utilities-dev 160 pkg upgrade -y 161 16220230909: 163 Enable vnet sysctl variables to be loader tunable. SYSCTLs which 164 belongs to VNETs can be initialized during early boot or module 165 loading if they are marked with CTLFLAG_TUN and there are 166 corresponding kernel environment variables. 167 16820230901: 169 The WITH_INIT_ALL_PATTERN and WITH_INIT_ALL_ZERO build options have 170 been replaced by INIT_ALL=pattern and INIT_ALL=zero respectively. 171 17220230824: 173 FreeBSD 15.0-CURRENT. 174 17520230817: 176 Serial communication (in boot loaders, kernel, and userland) has 177 been changed to default to 115200 bps, in line with common industry 178 practice and typcial firmware serial console redirection 179 configuration. 180 181 Note that the early x86 BIOS bootloader (i.e., boot0sio) does not 182 support rates above 9600 bps and is not changed. boot0sio users may 183 set BOOT_COMCONSOLE_SPEED=9600 to use 9600 for all of the boot 184 components, or use the standard boot0 and have the boot2 stage start 185 with the serial port at 115200. 186 18720230807: 188 Following the general removal of MIPS support, the ath(4) AHB bus- 189 frontend has been removed, too, and building of the PCI support is 190 integrated with the ath(4) main module again. As a result, there's 191 no longer a need for if_ath_pci_load="YES" in /boot/loader.conf or 192 "device ath_pci" in the kernel configuration. 193 19420230803: 195 MAXCPU has been increased to 1024 in the amd64 GENERIC kernel config. 196 Out-of-tree kernel modules will need to be rebuilt. 197 19820230724: 199 CAM has been mechanically updated s/u_int(64|32|16|8)_t/uint\1_t/g 200 to move to the standard uintXX_t types from the old, traditional 201 BSD u_intXX_t types. This should be a NOP, but may cause problems 202 for out of tree changes. The SIMs were not updated since most of 203 the old u_intXX_t uses weren't due to CAM interfaces. 204 20520230713: 206 stable/14 branch created. 207 20820230629: 209 The heuristic for detecting old chromebooks with an EC bug that requires 210 atkbdc driver workarounds has changed. There should be no functional 211 change, but if your old chromebook's keyboard stops working, please 212 file a PR and assign it to imp. 213 21420230623: 215 OpenSSL has been updated to version 3.0, including changes throughout 216 the base system. It is important to rebuild third-party software 217 after upgrading. 218 21920230619: 220 To enable pf rdr rules for connections initiated from the host, pf 221 filter rules can be optionally enabled for packets delivered 222 locally. This can change the behavior of rules which match packets 223 delivered to lo0. To enable this feature: 224 225 sysctl net.pf.filter_local=1 226 service pf restart 227 228 When enabled, its best to ensure that packets delivered locally are not 229 filtered, e.g. by adding a 'skip on lo' rule. 230 23120230613: 232 Improvements to libtacplus(8) mean that tacplus.conf(5) now 233 follows POSIX shell syntax rules. This may cause TACACS+ 234 authentication to fail if the shared secret contains a single 235 quote, double quote, or backslash character which isn't 236 already properly quoted or escaped. 237 23820230612: 239 Belatedly switch the default nvme block device on x86 from nvd to nda. 240 nda created nvd compatibility links by default, so this should be a 241 nop. If this causes problems for your application, set hw.nvme.use_nvd=1 242 in your loader.conf or add `options NVME_USE_NVD=1` to your kernel 243 config. To disable the nvd compatibility aliases, add 244 kern.cam.nda.nvd_compat=0 to loader.conf. The default has been nda on 245 all non-x86 platforms for some time now. If you need to fall back, 246 please email imp@freebsd.org about why. 247 248 Encrypted swap partitions need to be changed from nvd to nda if you 249 migrate, or you need to use the above to switch back to nvd. 250 25120230422: 252 Remove portsnap(8). Users are encouraged to obtain the ports tree 253 using git instead. 254 25520230420: 256 Add jobs.mk to save typing. Enables -j${JOB_MAX} and logging 257 eg. 258 make buildworld-jobs 259 runs 260 make -j${JOB_MAX} buildworld > ../buildworld.log 2>&1 261 262 where JOB_MAX is derrived from ncpus in local.sys.mk if not set in env. 263 26420230316: 265 Video related devices for some arm devices have been renamed. 266 If you have a custom kernel config and want to use hdmi output on 267 IMX6 board you need to add "device dwc_hdmi" "device imx6_hdmi" and 268 "device imx6_ipu" to it. 269 If you have a custom kernel config and want to use hdmi output on 270 TI AM335X board you need to add "device tda19988" to it. 271 If you add "device hdmi" in it you need to remove it as it doesn't 272 exist anymore. 273 27420230221: 275 Introduce new kernel options KBD_DELAY1 and KBD_DELAY2. See atkbdc(4) 276 for details. 277 27820230206: 279 sshd now defaults to having X11Forwarding disabled, following upstream. 280 Administrators who wish to enable X11Forwarding should add 281 `X11Forwarding yes` to /etc/ssh/sshd_config. 282 28320230204: 284 Since commit 75d41cb6967 Huawei 3G/4G LTE Mobile Devices do not default 285 to ECM, but NCM mode and need u3g and ucom modules loaded. See cdce(4). 286 28720230130: 288 As of commit 7c40e2d5f685, the dependency on netlink(4) has been added 289 to the linux_common(4) module. Users relying on linux_common may need 290 to complile netlink(4) module if it is not present in their kernel. 291 29220230126: 293 The WITHOUT_CXX option has been removed. C++ components in the base 294 system are now built unconditionally. 295 29620230113: 297 LinuxKPI pci.h changes may require out-of-tree drivers to be recompiled. 298 Bump _FreeBSD_version to 1400078 to be able to detect this change. 299 30020221212: 301 llvm-objump is now always installed as objdump. Previously there was 302 no /usr/bin/objdump unless the WITH_LLVM_BINUTILS knob was used. 303 304 Some LLVM objdump options have a different output format compared to 305 GNU objdump; readelf is available for inspecting ELF files, and GNU 306 objdump is available from the devel/binutils port or package. 307 30820221205: 309 dma(8) has replaced sendmail(8) as the default mta. For people willing 310 to reenable sendmail(8): 311 312 $ cp /usr/share/examples/sendmail/mailer.conf /etc/mail/mailer.conf 313 314 and add sendmail_enable="YES" to rc.conf. 315 31620221204: 317 hw.bus.disable_failed_devices has changed from 'false' to 'true' by 318 default. Now if newbus succeeds in probing a device, but fails to attach 319 the device, we'll disable the device. In the past, we'd keep retrying 320 the device on each new driver loaded. To get that behavior now, one 321 needs to use devctl to re-enable the device, and reprobe it (or set 322 the sysctl/tunable hw.bus.disable_failed_devices=false). 323 324 NOTE: This was reverted 20221205 due to unexpected compatibility issues 325 32620221122: 327 pf no longer accepts 'scrub fragment crop' or 'scrub fragment drop-ovl'. 328 These configurations are no longer automatically reinterpreted as 329 'scrub fragment reassemble'. 330 33120221121: 332 The WITHOUT_CLANG_IS_CC option has been removed. When Clang is enabled 333 it is always installed as /usr/bin/cc (and c++, cpp). 334 33520221026: 336 Some programs have been moved into separate packages. It is recommended 337 for pkgbase users to do: 338 339 pkg install FreeBSD-dhclient FreeBSD-geom FreeBSD-resolvconf \ 340 FreeBSD-devd FreeBSD-devmatch 341 342 after upgrading to restore all the component that were previously 343 installed. 344 34520221002: 346 OPIE has been removed from the base system. If needed, it can 347 be installed from ports (security/opie) or packages (opie). 348 Otherwise, make sure that your PAM policies do not reference 349 pam_opie or pam_opieaccess. 350 35120220610: 352 LinuxKPI pm.h changes require an update to the latest drm-kmod version 353 before re-compiling to avoid errors. 354 35520211230: 356 The macros provided for the manipulation of CPU sets (e.g. CPU_AND) 357 have been modified to take 2 source arguments instead of only 1. 358 Externally maintained sources that use these macros will have to 359 be adapted. The FreeBSD version has been bumped to 1400046 to 360 reflect this change. 361 36220211214: 363 A number of the kernel include files are able to be included by 364 themselves. A test has been added to buildworld to enforce this. 365 36620211209: 367 Remove mips as a recognized target. This starts the decommissioning of 368 mips support in FreeBSD. mips related items will be removed wholesale in 369 the coming days and weeks. 370 371 This broke the NO_CLEAN build for some people. Either do a clean build 372 or touch 373 lib/clang/include/llvm/Config/Targets.def 374 lib/clang/include/llvm/Config/AsmParsers.def 375 lib/clang/include/llvm/Config/Disassemblers.def 376 lib/clang/include/llvm/Config/AsmPrinters.def 377 before the build to force everything to rebuild that needs to. 378 37920211202: 380 Unbound support for RFC8375: The special-use domain 'home.arpa' is 381 by default blocked. To unblock it use a local-zone nodefault 382 statement in unbound.conf: 383 local-zone: "home.arpa." nodefault 384 385 Or use another type of local-zone to override with your choice. 386 387 The reason for this is discussed in Section 6.1 of RFC8375: 388 Because 'home.arpa.' is not globally scoped and cannot be secured 389 using DNSSEC based on the root domain's trust anchor, there is no way 390 to tell, using a standard DNS query, in which homenet scope an answer 391 belongs. Consequently, users may experience surprising results with 392 such names when roaming to different homenets. 393 39420211110: 395 Commit b8d60729deef changed the TCP congestion control framework so 396 that any of the included congestion control modules could be 397 the single module built into the kernel. Previously newreno 398 was automatically built in through direct reference. As of 399 this commit you are required to declare at least one congestion 400 control module (e.g. 'options CC_NEWRENO') and to also declare a 401 default using the CC_DEFAULT option (e.g. options CC_DEFAULT="newreno\"). 402 The GENERIC configuration includes CC_NEWRENO and defines newreno 403 as the default. If no congestion control option is built into the 404 kernel and you are including networking, the kernel compile will 405 fail. Also if no default is declared the kernel compile will fail. 406 40720211118: 408 Mips has been removed from universe builds. It will be removed from the 409 tree shortly. 410 41120211106: 412 Commit f0c9847a6c47 changed the arguments for VOP_ALLOCATE. 413 The NFS modules must be rebuilt from sources and any out 414 of tree file systems that implement their own VOP_ALLOCATE 415 may need to be modified. 416 41720211022: 418 The synchronous PPP kernel driver sppp(4) has been removed. 419 The cp(4) and ce(4) drivers are now always compiled with netgraph(4) 420 support, formerly enabled by NETGRAPH_CRONYX option. 421 42220211020: 423 sh(1) is now the default shell for the root user. To force root to use 424 the csh shell, please run the following command as root: 425 426 # chsh -s csh 427 42820211004: 429 Ncurses distribution has been split between libtinfow and libncurses 430 with libncurses.so becoming a linker (ld) script to seamlessly link 431 to libtinfow as needed. Bump _FreeBSD_version to 1400035 to reflect 432 this change. 433 43420210923: 435 As of commit 8160a0f62be6, the dummynet module no longer depends on the 436 ipfw module. Dummynet can now be used by pf as well as ipfw. As such 437 users who relied on this dependency may need to include ipfw in the 438 list of modules to load on their systems. 439 44020210922: 441 As of commit 903873ce1560, the mixer(8) utility has got a slightly 442 new syntax. Please refer to the mixer(8) manual page for more 443 information. The old mixer utility can be installed from ports: 444 audio/freebsd-13-mixer 445 44620210911: 447 As of commit 55089ef4f8bb, the global variable nfs_maxcopyrange has 448 been deleted from the nfscommon.ko. As such, nfsd.ko must be built 449 from up to date sources to avoid an undefined reference when 450 being loaded. 451 45220210817: 453 As of commit 62ca9fc1ad56 OpenSSL no longer enables kernel TLS 454 by default. Users can enable kernel TLS via the "KTLS" SSL 455 option. This can be enabled globally by using a custom 456 OpenSSL config file via OPENSSL_CONF or via an 457 application-specific configuration option for applications 458 which permit setting SSL options via SSL_CONF_cmd(3). 459 46020210811: 461 Commit 3ad1e1c1ce20 changed the internal KAPI between the NFS 462 modules. Therefore, all need to be rebuilt from sources. 463 46420210730: 465 Commit b69019c14cd8 removes pf's DIOCGETSTATESNV ioctl. 466 As of be70c7a50d32 it is no longer used by userspace, but it does mean 467 users may not be able to enumerate pf states if they update the kernel 468 past b69019c14cd8 without first updating userspace past be70c7a50d32. 469 47020210729: 471 As of commit 01ad0c007964 if_bridge member interfaces can no longer 472 change their MTU. Changing the MTU of the bridge itself will change the 473 MTU on all member interfaces instead. 474 47520210716: 476 Commit ee29e6f31111 changed the internal KAPI between the nfscommon 477 and nfsd modules. Therefore, both need to be rebuilt from sources. 478 Bump __FreeBSD_version to 1400026 for this KAPI change. 479 48020210715: 481 The 20210707 awk update brought in a change in behavior. This has 482 been corrected as of d4d252c49976. Between these dates, if you 483 installed a new awk binary, you may not be able to build a new 484 kernel because the change in behavior affected the genoffset 485 script used to build the kernel. If you did update, the fix is 486 to update your sources past the above hash and do 487 % cd usr.bin/awk 488 % make clean all 489 % sudo -E make install 490 to enable building kernels again. 491 49220210708: 493 Commit 1e0a518d6548 changed the internal KAPI between the NFS 494 modules. They all need to be rebuilt from sources. I did not 495 bump __FreeBSD_version, since it was bumped recently. 496 49720210707: 498 awk has been updated to the latest one-true-awk version 20210215. 499 This contains a number of minor bug fixes. 500 50120210624: 502 The NFSv4 client now uses the highest minor version of NFSv4 503 supported by the NFSv4 server by default instead of minor version 0, 504 for NFSv4 mounts. 505 The "minorversion" mount option may be used to override this default. 506 50720210618: 508 Bump __FreeBSD_version to 1400024 for LinuxKPI changes. 509 Most notably netdev.h can change now as the (last) dependencies 510 (mlx4/ofed) are now using struct ifnet directly, but also for PCI 511 additions and others. 512 51320210618: 514 The directory "blacklisted" under /usr/share/certs/ has been 515 renamed to "untrusted". 516 51720210611: 518 svnlite has been removed from base. Should you need svn for any reason 519 please install the svn package or port. 520 52120210611: 522 Commit e1a907a25cfa changed the internal KAPI between the krpc 523 and nfsserver. As such, both modules must be rebuilt from 524 sources. Bump __FreeBSD_version to 1400022. 525 52620210610: 527 The an(4) driver has been removed from FreeBSD. 528 52920210608: 530 The vendor/openzfs branch was renamed to vendor/openzfs/legacy to 531 start tracking OpenZFS upstream more closely. Please see 532https://lists.freebsd.org/archives/freebsd-current/2021-June/000153.html 533 for details on how to correct any errors that might result. The 534 short version is that you need to remove the old branch locally: 535 git update-ref -d refs/remotes/freebsd/vendor/openzfs 536 (assuming your upstream origin is named 'freebsd'). 537 53820210525: 539 Commits 17accc08ae15 and de102f870501 add new files to LinuxKPI 540 which break drm-kmod. In addition various other additions where 541 committed. Bump __FreeBSD_version to 1400015 to be able to 542 detect this. 543 54420210513: 545 Commit ca179c4d74f2 changed the package in which the OpenSSL 546 libraries and utilities are packaged. 547 It is recommended for pkgbase user to do: 548 pkg install -f FreeBSD-openssl 549 before pkg upgrade otherwise some dependencies might not be met 550 and pkg will stop working as libssl will not be present anymore 551 on the system. 552 55320210426: 554 Commit 875977314881 changed the internal KAPI between 555 the nfsd and nfscommon modules. As such these modules 556 need to be rebuilt from sources. 557 Without this patch in your NFSv4.1/4.2 server, enabling 558 delegations by setting vfs.nfsd.issue_delegations non-zero 559 is not recommended. 560 56120210411: 562 Commit 7763814fc9c2 changed the internal KAPI between 563 the krpc and NFS. As such, the krpc, nfscommon and 564 nfscl modules must all be rebuilt from sources. 565 Without this patch, NFSv4.1/4.2 mounts should not 566 be done with the nfscbd(8) daemon running, to avoid 567 needing a working back channel for server->client RPCs. 568 56920210330: 570 Commit 01ae8969a9ee fixed the NFSv4.1/4.2 server so that it 571 handles binding of the back channel as required by RFC5661. 572 Until this patch is in your server, avoid use of the "nconnects" 573 mount option for Linux NFSv4.1/4.2 mounts. 574 57520210225: 576 For 64-bit architectures the base system is now built with Position 577 Independent Executable (PIE) support enabled by default. It may be 578 disabled using the WITHOUT_PIE knob. A clean build is required. 579 58020210128: 581 Various LinuxKPI functionality was added which conflicts with DRM. 582 Please update your drm-kmod port to after the __FreeBSD_version 1400003 583 update. 584 58520210121: 586 stable/13 branch created. 587 58820210108: 589 PC Card attachments for all devices have been removed. In the case of 590 wi and cmx, the entire drivers were removed because they were only 591 PC Card devices. FreeBSD_version 1300134 should be used for this 592 since it was bumped so recently. 593 59420210107: 595 Transport-independent parts of HID support have been split off the USB 596 code in to separate subsystem. Kernel configs which include one of 597 ums, ukbd, uhid, atp, wsp, wmt, uaudio, ugold or ucycom drivers should 598 be updated with adding of "device hid" line. 599 60020210105: 601 ncurses installation has been modified to only keep the widechar 602 enabled version. Incremental build is broken for that change, so it 603 requires a clean build. 604 60520201223: 606 The FreeBSD project has migrated from Subversion to Git. Temporary 607 instructions can be found at 608 https://github.com/bsdimp/freebsd-git-docs/blob/main/src-cvt.md 609 and other documents in that repo. 610 61120201216: 612 The services database has been updated to cover more of the basic 613 services expected in a modern system. The database is big enough 614 that it will cause issues in mergemaster in Releases previous to 615 12.2 and 11.3, or in very old current systems from before r358154. 616 61720201215: 618 Obsolete in-tree GDB 6.1.1 has been removed. GDB (including kgdb) 619 may be installed from ports or packages. 620 62120201124: 622 ping6 has been merged into ping. It can now be called as "ping -6". 623 See ping(8) for details. 624 62520201108: 626 Default value of net.add_addr_allfibs has been changed to 0. 627 If you have multi-fib configuration and rely on existence of all 628 interface routes in every fib, you need to set the above sysctl to 1. 629 63020201030: 631 The internal pre-processor in the calendar(1) program has been 632 extended to support more C pre-processor commands (e.g. #ifdef, #else, 633 and #undef) and to detect unbalanced conditional statements. 634 Error messages have been extended to include the filename and line 635 number if processing stops to help fixing malformed data files. 636 63720201026: 638 All the data files for the calendar(1) program, except calendar.freebsd, 639 have been moved to the deskutils/calendar-data port, much like the 640 jewish calendar entries were moved to deskutils/hebcal years ago. After 641 make delete-old-files, you need to install it to retain full 642 functionality. calendar(1) will issue a reminder for files it can't 643 find. 644 64520200923: 646 LINT files are no longer generated. We now include the relevant NOTES 647 files. Note: This may cause conflicts with updating in some cases. 648 find sys -name LINT\* -delete 649 is suggested across this commit to remove the generated LINT files. 650 651 If you have tried to update with generated files there, the svn 652 command you want to un-auger the tree is 653 cd sys/amd64/conf 654 svn revert -R . 655 and then do the above find from the top level. Substitute 'amd64' 656 above with where the error message indicates a conflict. 657 65820200824: 659 OpenZFS support has been integrated. Do not upgrade root pools until 660 the loader is updated to support zstd. Furthermore, we caution against 661 'zpool upgrade' for the next few weeks. The change should be transparent 662 unless you want to use new features. 663 664 Not all "NO_CLEAN" build scenarios work across these changes. Many 665 scenarios have been tested and fixed, but rebuilding kernels without 666 rebuilding world may fail. 667 668 The ZFS cache file has moved from /boot to /etc to match the OpenZFS 669 upstream default. A fallback to /boot has been added for mountroot. 670 671 Pool auto import behavior at boot has been moved from the kernel module 672 to an explicit "zpool import -a" in one of the rc scripts enabled by 673 zfs_enable=YES. This means your non-root zpools won't auto import until 674 you upgrade your /etc/rc.d files. 675 67620200824: 677 The resume code now notifies devd with the 'kernel' system 678 rather than the old 'kern' subsystem to be consistent with 679 other use. The old notification will be created as well, but 680 will be removed prior to FreeBSD 14.0. 681 68220200821: 683 r362275 changed the internal API between the kernel RPC and the 684 NFS modules. As such, all the modules must be recompiled from 685 sources. 686 68720200817: 688 r364330 modified the internal API used between the NFS modules. 689 As such, all the NFS modules must be re-compiled from sources. 690 69120200816: 692 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 693 been upgraded to 11.0.0. Please see the 20141231 entry below for 694 information about prerequisites and upgrading, if you are not already 695 using clang 3.5.0 or higher. 696 69720200810: 698 r364092 modified the internal ABI used between the kernel NFS 699 modules. As such, all of these modules need to be rebuilt 700 from sources, so a version bump was done. 701 70220200807: 703 Makefile.inc has been updated to work around the issue documented in 704 20200729. It was a case where the optimization of using symbolic links 705 to point to binaries created a situation where we'd run new binaries 706 with old libraries starting midway through the installworld process. 707 70820200729: 709 r363679 has redefined some undefined behavior in regcomp(3); notably, 710 extraneous escapes of most ordinary characters will no longer be 711 accepted. An exp-run has identified all of the problems with this in 712 ports, but other non-ports software may need extra escapes removed to 713 continue to function. 714 715 Because of this change, installworld may encounter the following error 716 from rtld: Undefined symbol "regcomp@FBSD_1.6" -- It is imperative that 717 you do not halt installworld. Instead, let it run to completion (whether 718 successful or not) and run installworld once more. 719 72020200627: 721 A new implementation of bc and dc has been imported in r362681. This 722 implementation corrects non-conformant behavior of the previous bc 723 and adds GNU bc compatible options. It offers a number of extensions, 724 is much faster on large values, and has support for message catalogs 725 (a number of languages are already supported, contributions of further 726 languages welcome). The option WITHOUT_GH_BC can be used to build the 727 world with the previous versions of bc and dc. 728 72920200625: 730 r362639 changed the internal API used between the NFS kernel modules. 731 As such, they all need to be rebuilt from sources. 732 73320200613: 734 r362158 changed the arguments for VFS_CHECKEXP(). As such, any 735 out of tree file systems need to be modified and rebuilt. 736 Also, any file systems that are modules must be rebuilt. 737 73820200604: 739 read(2) of a directory fd is now rejected by default. root may 740 re-enable it for system root only on non-ZFS filesystems with the 741 security.bsd.allow_read_dir sysctl(8) MIB if 742 security.bsd.suser_enabled=1. 743 744 It may be advised to setup aliases for grep to default to `-d skip` if 745 commonly non-recursively grepping a list that includes directories and 746 the potential for the resulting stderr output is not tolerable. Example 747 aliases are now installed, commented out, in /root/.cshrc and 748 /root/.shrc. 749 75020200523: 751 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 752 been upgraded to 10.0.1. Please see the 20141231 entry below for 753 information about prerequisites and upgrading, if you are not already 754 using clang 3.5.0 or higher. 755 75620200512: 757 Support for obsolete compilers has been removed from the build system. 758 Clang 6 and GCC 6.4 are the minimum supported versions. 759 76020200424: 761 closefrom(2) has been moved under COMPAT12, and replaced in libc with a 762 stub that calls close_range(2). If using a custom kernel configuration, 763 you may want to ensure that the COMPAT_FREEBSD12 option is included, as 764 a slightly older -CURRENT userland and older FreeBSD userlands may not 765 be functional without closefrom(2). 766 76720200414: 768 Upstream DTS from Linux 5.6 was merged and they now have the SID 769 and THS (Secure ID controller and THermal Sensor) node present. 770 The DTB overlays have now been removed from the tree for the H3/H5 and 771 A64 SoCs and the aw_sid and aw_thermal driver have been updated to 772 deal with upstream DTS. If you are using those overlays you need to 773 remove them from loader.conf and update the DTBs on the FAT partition. 774 77520200310: 776 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 777 been upgraded to 10.0.0. Please see the 20141231 entry below for 778 information about prerequisites and upgrading, if you are not already 779 using clang 3.5.0 or higher. 780 78120200309: 782 The amd(8) automount daemon has been removed from the source tree. 783 As of FreeBSD 10.1 autofs(5) is the preferred tool for automounting. 784 amd is still available in the sysutils/am-utils port. 785 78620200301: 787 Removed brooktree driver (bktr.4) from the tree. 788 78920200229: 790 The WITH_GPL_DTC option has been removed. The BSD-licenced device tree 791 compiler in usr.bin/dtc is used on all architectures which use dtc, and 792 the GPL dtc is available (if needed) from the sysutils/dtc port. 793 79420200229: 795 The WITHOUT_LLVM_LIBUNWIND option has been removed. LLVM's libunwind 796 is used by all supported CPU architectures. 797 79820200229: 799 GCC 4.2.1 has been removed from the tree. The WITH_GCC, 800 WITH_GCC_BOOTSTRAP, and WITH_GNUCXX options are no longer available. 801 Users who wish to build FreeBSD with GCC must use the external toolchain 802 ports or packages. 803 80420200220: 805 ncurses has been updated to a newer version (6.2-20200215). Given the ABI 806 has changed, users will have to rebuild all the ports that are linked to 807 ncurses. 808 80920200217: 810 The size of struct vnet and the magic cookie have changed. 811 Users need to recompile libkvm and all modules using VIMAGE 812 together with their new kernel. 813 81420200212: 815 Defining the long deprecated NO_CTF, NO_DEBUG_FILES, NO_INSTALLLIB, 816 NO_MAN, NO_PROFILE, and NO_WARNS variables is now an error. Update 817 your Makefiles and scripts to define MK_<var>=no instead as required. 818 819 One exception to this is that program or library Makefiles should 820 define MAN to empty rather than setting MK_MAN=no. 821 82220200108: 823 Clang/LLVM is now the default compiler and LLD the default 824 linker for riscv64. 825 82620200107: 827 make universe no longer uses GCC 4.2.1 on any architectures. 828 Architectures not supported by in-tree Clang/LLVM require an 829 external toolchain package. 830 83120200104: 832 GCC 4.2.1 is now not built by default, as part of the GCC 4.2.1 833 retirement plan. Specifically, the GCC, GCC_BOOTSTRAP, and GNUCXX 834 options default to off for all supported CPU architectures. As a 835 short-term transition aid they may be enabled via WITH_* options. 836 GCC 4.2.1 is expected to be removed from the tree on 2020-03-31. 837 83820200102: 839 Support for armv5 has been disconnected and is being removed. The 840 machine combination MACHINE=arm MACHINE_ARCH=arm is no longer valid. 841 You must now use a MACHINE_ARCH of armv6 or armv7. The default 842 MACHINE_ARCH for MACHINE=arm is now armv7. 843 84420191226: 845 Clang/LLVM is now the default compiler for all powerpc architectures. 846 LLD is now the default linker for powerpc64. The change for powerpc64 847 also includes a change to the ELFv2 ABI, incompatible with the existing 848 ABI. 849 85020191226: 851 Kernel-loadable random(4) modules are no longer unloadable. 852 85320191222: 854 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 855 been upgraded to 9.0.1. Please see the 20141231 entry below for 856 information about prerequisites and upgrading, if you are not already 857 using clang 3.5.0 or higher. 858 85920191212: 860 r355677 has modified the internal interface used between the 861 NFS modules in the kernel. As such, they must all be upgraded 862 simultaneously. I will do a version bump for this. 863 86420191205: 865 The root certificates of the Mozilla CA Certificate Store have been 866 imported into the base system and can be managed with the certctl(8) 867 utility. If you have installed the security/ca_root_nss port or package 868 with the ETCSYMLINK option (the default), be advised that there may be 869 differences between those included in the port and those included in 870 base due to differences in nss branch used as well as general update 871 frequency. Note also that certctl(8) cannot manage certs in the 872 format used by the security/ca_root_nss port. 873 87420191120: 875 The amd(8) automount daemon has been disabled by default, and will be 876 removed in the future. As of FreeBSD 10.1 the autofs(5) is available 877 for automounting. 878 87920191107: 880 The nctgpio and wbwd drivers have been moved to the superio bus. 881 If you have one of these drivers in a kernel configuration, then 882 you should add device superio to it. If you use one of these drivers 883 as a module and you compile a custom set of modules, then you should 884 add superio to the set. 885 88620191021: 887 KPIs for network drivers to access interface addresses have changed. 888 Users need to recompile NIC driver modules together with kernel. 889 89020191021: 891 The net.link.tap.user_open sysctl no longer prevents user opening of 892 already created /dev/tapNN devices. Access is still controlled by 893 node permissions, just like tun devices. The net.link.tap.user_open 894 sysctl is now used only to allow users to perform devfs cloning of 895 tap devices, and the subsequent open may not succeed if the user is not 896 in the appropriate group. This sysctl may be deprecated/removed 897 completely in the future. 898 89920191009: 900 mips, powerpc, and sparc64 are no longer built as part of 901 universe / tinderbox unless MAKE_OBSOLETE_GCC is defined. If 902 not defined, mips, powerpc, and sparc64 builds will look for 903 the xtoolchain binaries and if installed use them for universe 904 builds. As llvm 9.0 becomes vetted for these architectures, they 905 will be removed from the list. 906 90720191009: 908 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 909 been upgraded to 9.0.0. Please see the 20141231 entry below for 910 information about prerequisites and upgrading, if you are not already 911 using clang 3.5.0 or higher. 912 91320191003: 914 The hpt27xx, hptmv, hptnr, and hptrr drivers have been removed from 915 GENERIC. They are available as modules and can be loaded by adding 916 to /boot/loader.conf hpt27xx_load="YES", hptmv_load="YES", 917 hptnr_load="YES", or hptrr_load="YES", respectively. 918 91920190913: 920 ntpd no longer by default locks its pages in memory, allowing them 921 to be paged out by the kernel. Use rlimit memlock to restore 922 historic BSD behaviour. For example, add "rlimit memlock 32" 923 to ntp.conf to lock up to 32 MB of ntpd address space in memory. 924 92520190823: 926 Several of ping6's options have been renamed for better consistency 927 with ping. If you use any of -ARWXaghmrtwx, you must update your 928 scripts. See ping6(8) for details. 929 93020190727: 931 The vfs.fusefs.sync_unmount and vfs.fusefs.init_backgrounded sysctls 932 and the "-o sync_unmount" and "-o init_backgrounded" mount options have 933 been removed from mount_fusefs(8). You can safely remove them from 934 your scripts, because they had no effect. 935 936 The vfs.fusefs.fix_broken_io, vfs.fusefs.sync_resize, 937 vfs.fusefs.refresh_size, vfs.fusefs.mmap_enable, 938 vfs.fusefs.reclaim_revoked, and vfs.fusefs.data_cache_invalidate 939 sysctls have been removed. If you felt the need to set any of them to 940 a non-default value, please tell asomers@FreeBSD.org why. 941 94220190713: 943 Default permissions on the /var/account/acct file (and copies of it 944 rotated by periodic daily scripts) are changed from 0644 to 0640 945 because the file contains sensitive information that should not be 946 world-readable. If the /var/account directory must be created by 947 rc.d/accounting, the mode used is now 0750. Admins who use the 948 accounting feature are encouraged to change the mode of an existing 949 /var/account directory to 0750 or 0700. 950 95120190620: 952 Entropy collection and the /dev/random device are no longer optional 953 components. The "device random" option has been removed. 954 Implementations of distilling algorithms can still be made loadable 955 with "options RANDOM_LOADABLE" (e.g., random_fortuna.ko). 956 95720190612: 958 Clang, llvm, lld, lldb, compiler-rt, libc++, libunwind and openmp have 959 been upgraded to 8.0.1. Please see the 20141231 entry below for 960 information about prerequisites and upgrading, if you are not already 961 using clang 3.5.0 or higher. 962 96320190608: 964 A fix was applied to i386 kernel modules to avoid panics with 965 dpcpu or vnet. Users need to recompile i386 kernel modules 966 having pcpu or vnet sections or they will refuse to load. 967 96820190513: 969 User-wired pages now have their own counter, 970 vm.stats.vm.v_user_wire_count. The vm.max_wired sysctl was renamed 971 to vm.max_user_wired and changed from an unsigned int to an unsigned 972 long. bhyve VMs wired with the -S are now subject to the user 973 wiring limit; the vm.max_user_wired sysctl may need to be tuned to 974 avoid running into the limit. 975 97620190507: 977 The IPSEC option has been removed from GENERIC. Users requiring 978 ipsec(4) must now load the ipsec(4) kernel module. 979 98020190507: 981 The tap(4) driver has been folded into tun(4), and the module has been 982 renamed to tuntap. You should update any kld_list="if_tap" or 983 kld_list="if_tun" entries in /etc/rc.conf, if_tap_load="YES" or 984 if_tun_load="YES" entries in /boot/loader.conf to load the if_tuntap 985 module instead, and "device tap" or "device tun" entries in kernel 986 config files to select the tuntap device instead. 987 98820190418: 989 The following knobs have been added related to tradeoffs between 990 safe use of the random device and availability in the absence of 991 entropy: 992 993 kern.random.initial_seeding.bypass_before_seeding: tunable; set 994 non-zero to bypass the random device prior to seeding, or zero to 995 block random requests until the random device is initially seeded. 996 For now, set to 1 (unsafe) by default to restore pre-r346250 boot 997 availability properties. 998 999 kern.random.initial_seeding.read_random_bypassed_before_seeding: 1000 read-only diagnostic sysctl that is set when bypass is enabled and 1001 read_random(9) is bypassed, to enable programmatic handling of this 1002 initial condition, if desired. 1003 1004 kern.random.initial_seeding.arc4random_bypassed_before_seeding: 1005 Similar to the above, but for arc4random(9) initial seeding. 1006 1007 kern.random.initial_seeding.disable_bypass_warnings: tunable; set 1008 non-zero to disable warnings in dmesg when the same conditions are 1009 met as for the diagnostic sysctls above. Defaults to zero, i.e., 1010 produce warnings in dmesg when the conditions are met. 1011 101220190416: 1013 The loadable random module KPI has changed; the random_infra_init() 1014 routine now requires a 3rd function pointer for a bool (*)(void) 1015 method that returns true if the random device is seeded (and 1016 therefore unblocked). 1017 101820190404: 1019 r345895 reverts r320698. This implies that an nfsuserd(8) daemon 1020 built from head sources between r320757 (July 6, 2017) and 1021 r338192 (Aug. 22, 2018) will not work unless the "-use-udpsock" 1022 is added to the command line. 1023 nfsuserd daemons built from head sources that are post-r338192 are 1024 not affected and should continue to work. 1025 102620190320: 1027 The fuse(4) module has been renamed to fusefs(4) for consistency with 1028 other filesystems. You should update any kld_load="fuse" entries in 1029 /etc/rc.conf, fuse_load="YES" entries in /boot/loader.conf, and 1030 "options FUSE" entries in kernel config files. 1031 103220190304: 1033 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1034 8.0.0. Please see the 20141231 entry below for information about 1035 prerequisites and upgrading, if you are not already using clang 3.5.0 1036 or higher. 1037 103820190226: 1039 geom_uzip(4) depends on the new module xz. If geom_uzip is statically 1040 compiled into your custom kernel, add 'device xz' statement to the 1041 kernel config. 1042 104320190219: 1044 drm and drm2 have been removed from the tree. Please see 1045 https://wiki.freebsd.org/Graphics for the latest information on 1046 migrating to the drm ports. 1047 104820190131: 1049 Iflib is no longer unconditionally compiled into the kernel. Drivers 1050 using iflib and statically compiled into the kernel, now require 1051 the 'device iflib' config option. For the same drivers loaded as 1052 modules on kernels not having 'device iflib', the iflib.ko module 1053 is loaded automatically. 1054 105520190125: 1056 The IEEE80211_AMPDU_AGE and AH_SUPPORT_AR5416 kernel configuration 1057 options no longer exist since r343219 and r343427 respectively; 1058 nothing uses them, so they should be just removed from custom 1059 kernel config files. 1060 106120181230: 1062 r342635 changes the way efibootmgr(8) works by requiring users to add 1063 the -b (bootnum) parameter for commands where the bootnum was previously 1064 specified with each option. For example 'efibootmgr -B 0001' is now 1065 'efibootmgr -B -b 0001'. 1066 106720181220: 1068 r342286 modifies the NFSv4 server so that it obeys vfs.nfsd.nfs_privport 1069 in the same as it is applied to NFSv2 and 3. This implies that NFSv4 1070 servers that have vfs.nfsd.nfs_privport set will only allow mounts 1071 from clients using a reserved port. Since both the FreeBSD and Linux 1072 NFSv4 clients use reserved ports by default, this should not affect 1073 most NFSv4 mounts. 1074 107520181219: 1076 The XLP config has been removed. We can't support 64-bit atomics in this 1077 kernel because it is running in 32-bit mode. XLP users must transition 1078 to running a 64-bit kernel (XLP64 or XLPN32). 1079 1080 The mips GXEMUL support has been removed from FreeBSD. MALTA* + qemu is 1081 the preferred emulator today and we don't need two different ones. 1082 1083 The old sibyte / swarm / Broadcom BCM1250 support has been 1084 removed from the mips port. 1085 108620181211: 1087 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1088 7.0.1. Please see the 20141231 entry below for information about 1089 prerequisites and upgrading, if you are not already using clang 3.5.0 1090 or higher. 1091 109220181211: 1093 Remove the timed and netdate programs from the base tree. Setting 1094 the time with these daemons has been obsolete for over a decade. 1095 109620181126: 1097 On amd64, arm64 and armv7 (architectures that install LLVM's ld.lld 1098 linker as /usr/bin/ld) GNU ld is no longer installed as ld.bfd, as 1099 it produces broken binaries when ifuncs are in use. Users needing 1100 GNU ld should install the binutils port or package. 1101 110220181123: 1103 The BSD crtbegin and crtend code has been enabled by default. It has 1104 had extensive testing on amd64, arm64, and i386. It can be disabled 1105 by building a world with -DWITHOUT_BSD_CRTBEGIN. 1106 110720181115: 1108 The set of CTM commands (ctm, ctm_smail, ctm_rmail, ctm_dequeue) 1109 has been converted to a port (misc/ctm) and will be removed from 1110 FreeBSD-13. It is available as a package (ctm) for all supported 1111 FreeBSD versions. 1112 111320181110: 1114 The default newsyslog.conf(5) file has been changed to only include 1115 files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if 1116 the filenames end in '.conf' and do not begin with a '.'. 1117 1118 You should check the configuration files in these two directories match 1119 this naming convention. You can verify which configuration files are 1120 being included using the command: 1121 $ newsyslog -Nrv 1122 112320181019: 1124 Stable/12 was branched created. 1125 112620181015: 1127 Ports for the DRM modules have been simplified. Now, amd64 users should 1128 just install the drm-kmod port. All others should install 1129 drm-legacy-kmod. 1130 1131 Graphics hardware that's newer than about 2010 usually works with 1132 drm-kmod. For hardware older than 2013, however, some users will need 1133 to use drm-legacy-kmod if drm-kmod doesn't work for them. Hardware older 1134 than 2008 usually only works in drm-legacy-kmod. The graphics team can 1135 only commit to hardware made since 2013 due to the complexity of the 1136 market and difficulty to test all the older cards effectively. If you 1137 have hardware supported by drm-kmod, you are strongly encouraged to use 1138 that as you will get better support. 1139 1140 Other than KPI chasing, drm-legacy-kmod will not be updated. As outlined 1141 elsewhere, the drm and drm2 modules will be eliminated from the src base 1142 soon (with a limited exception for arm). Please update to the package 1143 asap and report any issues to x11@freebsd.org. 1144 1145 Generally, anybody using the drm*-kmod packages should add 1146 WITHOUT_DRM_MODULE=t and WITHOUT_DRM2_MODULE=t to avoid nasty 1147 cross-threading surprises, especially with automatic driver 1148 loading from X11 startup. These will become the defaults in 13-current 1149 shortly. 1150 115120181012: 1152 The ixlv(4) driver has been renamed to iavf(4). As a consequence, 1153 custom kernel and module loading configuration files must be updated 1154 accordingly. Moreover, interfaces previous presented as ixlvN to the 1155 system are now exposed as iavfN and network configuration files must 1156 be adjusted as necessary. 1157 115820181009: 1159 OpenSSL has been updated to version 1.1.1. This update included 1160 additional various API changes throughout the base system. It is 1161 important to rebuild third-party software after upgrading. The value 1162 of __FreeBSD_version has been bumped accordingly. 1163 116420181006: 1165 The legacy DRM modules and drivers have now been added to the loader's 1166 module blacklist, in favor of loading them with kld_list in rc.conf(5). 1167 The module blacklist may be overridden with the loader.conf(5) 1168 'module_blacklist' variable, but loading them via rc.conf(5) is strongly 1169 encouraged. 1170 117120181002: 1172 The cam(4) based nda(4) driver will be used over nvd(4) by default on 1173 powerpc64. You may set 'options NVME_USE_NVD=1' in your kernel conf or 1174 loader tunable 'hw.nvme.use_nvd=1' if you wish to use the existing 1175 driver. Make sure to edit /boot/etc/kboot.conf and fstab to use the 1176 nda device name. 1177 117820180913: 1179 Reproducible build mode is now on by default, in preparation for 1180 FreeBSD 12.0. This eliminates build metadata such as the user, 1181 host, and time from the kernel (and uname), unless the working tree 1182 corresponds to a modified checkout from a version control system. 1183 The previous behavior can be obtained by setting the /etc/src.conf 1184 knob WITHOUT_REPRODUCIBLE_BUILD. 1185 118620180826: 1187 The Yarrow CSPRNG has been removed from the kernel as it has not been 1188 supported by its designers since at least 2003. Fortuna has been the 1189 default since FreeBSD-11. 1190 119120180822: 1192 devctl freeze/thaw have gone into the tree, the rc scripts have been 1193 updated to use them and devmatch has been changed. You should update 1194 kernel, userland and rc scripts all at the same time. 1195 119620180818: 1197 The default interpreter has been switched from 4th to Lua. 1198 LOADER_DEFAULT_INTERP, documented in build(7), will override the default 1199 interpreter. If you have custom FORTH code you will need to set 1200 LOADER_DEFAULT_INTERP=4th (valid values are 4th, lua or simp) in 1201 src.conf for the build. This will create default hard links between 1202 loader and loader_4th instead of loader and loader_lua, the new default. 1203 If you are using UEFI it will create the proper hard link to loader.efi. 1204 1205 bhyve uses userboot.so. It remains 4th-only until some issues are solved 1206 regarding coexisting with multiple versions of FreeBSD are resolved. 1207 120820180815: 1209 ls(1) now respects the COLORTERM environment variable used in other 1210 systems and software to indicate that a colored terminal is both 1211 supported and desired. If ls(1) is suddenly emitting colors, they may 1212 be disabled again by either removing the unwanted COLORTERM from your 1213 environment, or using `ls --color=never`. The ls(1) specific CLICOLOR 1214 may not be observed in a future release. 1215 121620180808: 1217 The default pager for most commands has been changed to "less". To 1218 restore the old behavior, set PAGER="more" and MANPAGER="more -s" in 1219 your environment. 1220 122120180731: 1222 The jedec_ts(4) driver has been removed. A superset of its functionality 1223 is available in the jedec_dimm(4) driver, and the manpage for that 1224 driver includes migration instructions. If you have "device jedec_ts" 1225 in your kernel configuration file, it must be removed. 1226 122720180730: 1228 amd64/GENERIC now has EFI runtime services, EFIRT, enabled by default. 1229 This should have no effect if the kernel is booted via BIOS/legacy boot. 1230 EFIRT may be disabled via a loader tunable, efi.rt.disabled, if a system 1231 has a buggy firmware that prevents a successful boot due to use of 1232 runtime services. 1233 123420180727: 1235 Atmel AT91RM9200 and AT91SAM9, Cavium CNS 11xx and XScale 1236 support has been removed from the tree. These ports were 1237 obsolete and/or known to be broken for many years. 1238 123920180723: 1240 loader.efi has been augmented to participate more fully in the 1241 UEFI boot manager protocol. loader.efi will now look at the 1242 BootXXXX environment variable to determine if a specific kernel 1243 or root partition was specified. XXXX is derived from BootCurrent. 1244 efibootmgr(8) manages these standard UEFI variables. 1245 124620180720: 1247 zfsloader's functionality has now been folded into loader. 1248 zfsloader is no longer necessary once you've updated your 1249 boot blocks. For a transition period, we will install a 1250 hardlink for zfsloader to loader to allow a smooth transition 1251 until the boot blocks can be updated (hard link because old 1252 zfs boot blocks don't understand symlinks). 1253 125420180719: 1255 ARM64 now have efifb support, if you want to have serial console 1256 on your arm64 board when an screen is connected and the bootloader 1257 setup a frame buffer for us to use, just add : 1258 boot_serial=YES 1259 boot_multicons=YES 1260 in /boot/loader.conf 1261 For Raspberry Pi 3 (RPI) users, this is needed even if you don't have 1262 an screen connected as the firmware will setup a frame buffer are that 1263 u-boot will expose as an EFI frame buffer. 1264 126520180719: 1266 New uid:gid added, ntpd:ntpd (123:123). Be sure to run mergemaster 1267 or take steps to update /etc/passwd before doing installworld on 1268 existing systems. Do not skip the "mergemaster -Fp" step before 1269 installworld, as described in the update procedures near the bottom 1270 of this document. Also, rc.d/ntpd now starts ntpd(8) as user ntpd 1271 if the new mac_ntpd(4) policy is available, unless ntpd_flags or 1272 the ntp config file contain options that change file/dir locations. 1273 When such options (e.g., "statsdir" or "crypto") are used, ntpd can 1274 still be run as non-root by setting ntpd_user=ntpd in rc.conf, after 1275 taking steps to ensure that all required files/dirs are accessible 1276 by the ntpd user. 1277 127820180717: 1279 Big endian arm support has been removed. 1280 128120180711: 1282 The static environment setup in kernel configs is no longer mutually 1283 exclusive with the loader(8) environment by default. In order to 1284 restore the previous default behavior of disabling the loader(8) 1285 environment if a static environment is present, you must specify 1286 loader_env.disabled=1 in the static environment. 1287 128820180705: 1289 The ABI of syscalls used by management tools like sockstat and 1290 netstat has been broken to allow 32-bit binaries to work on 1291 64-bit kernels without modification. These programs will need 1292 to match the kernel in order to function. External programs may 1293 require minor modifications to accommodate a change of type in 1294 structures from pointers to 64-bit virtual addresses. 1295 129620180702: 1297 On i386 and amd64 atomics are now inlined. Out of tree modules using 1298 atomics will need to be rebuilt. 1299 130020180701: 1301 The '%I' format in the kern.corefile sysctl limits the number of 1302 core files that a process can generate to the number stored in the 1303 debug.ncores sysctl. The '%I' format is replaced by the single digit 1304 index. Previously, if all indexes were taken the kernel would overwrite 1305 only a core file with the highest index in a filename. 1306 Currently the system will create a new core file if there is a free 1307 index or if all slots are taken it will overwrite the oldest one. 1308 130920180630: 1310 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1311 6.0.1. Please see the 20141231 entry below for information about 1312 prerequisites and upgrading, if you are not already using clang 3.5.0 1313 or higher. 1314 131520180628: 1316 r335753 introduced a new quoting method. However, etc/devd/devmatch.conf 1317 needed to be changed to work with it. This change was made with r335763 1318 and requires a mergemaster / etcupdate / etc to update the installed 1319 file. 1320 132120180612: 1322 r334930 changed the interface between the NFS modules, so they all 1323 need to be rebuilt. r335018 did a __FreeBSD_version bump for this. 1324 132520180530: 1326 As of r334391 lld is the default amd64 system linker; it is installed 1327 as /usr/bin/ld. Kernel build workarounds (see 20180510 entry) are no 1328 longer necessary. 1329 133020180530: 1331 The kernel / userland interface for devinfo changed, so you'll 1332 need a new kernel and userland as a pair for it to work (rebuilding 1333 lib/libdevinfo is all that's required). devinfo and devmatch will 1334 not work, but everything else will when there's a mismatch. 1335 133620180523: 1337 The on-disk format for hwpmc callchain records has changed to include 1338 threadid corresponding to a given record. This changes the field offsets 1339 and thus requires that libpmcstat be rebuilt before using a kernel 1340 later than r334108. 1341 134220180517: 1343 The vxge(4) driver has been removed. This driver was introduced into 1344 HEAD one week before the Exar left the Ethernet market and is not 1345 known to be used. If you have device vxge in your kernel config file 1346 it must be removed. 1347 134820180510: 1349 The amd64 kernel now requires a ld that supports ifunc to produce a 1350 working kernel, either lld or a newer binutils. lld is built by default 1351 on amd64, and the 'buildkernel' target uses it automatically. However, 1352 it is not the default linker, so building the kernel the traditional 1353 way requires LD=ld.lld on the command line (or LD=/usr/local/bin/ld for 1354 binutils port/package). lld will soon be default, and this requirement 1355 will go away. 1356 1357 NOTE: As of r334391 lld is the default system linker on amd64, and no 1358 workaround is necessary. 1359 136020180508: 1361 The nxge(4) driver has been removed. This driver was for PCI-X 10g 1362 cards made by s2io/Neterion. The company was acquired by Exar and 1363 no longer sells or supports Ethernet products. If you have device 1364 nxge in your kernel config file it must be removed. 1365 136620180504: 1367 The tz database (tzdb) has been updated to 2018e. This version more 1368 correctly models time stamps in time zones with negative DST such as 1369 Europe/Dublin (from 1971 on), Europe/Prague (1946/7), and 1370 Africa/Windhoek (1994/2017). This does not affect the UT offsets, only 1371 time zone abbreviations and the tm_isdst flag. 1372 137320180502: 1374 The ixgb(4) driver has been removed. This driver was for an early and 1375 uncommon legacy PCI 10GbE for a single ASIC, Intel 82597EX. Intel 1376 quickly shifted to the long lived ixgbe family. If you have device 1377 ixgb in your kernel config file it must be removed. 1378 137920180501: 1380 The lmc(4) driver has been removed. This was a WAN interface 1381 card that was already reportedly rare in 2003, and had an ambiguous 1382 license. If you have device lmc in your kernel config file it must 1383 be removed. 1384 138520180413: 1386 Support for Arcnet networks has been removed. If you have device 1387 arcnet or device cm in your kernel config file they must be 1388 removed. 1389 139020180411: 1391 Support for FDDI networks has been removed. If you have device 1392 fddi or device fpa in your kernel config file they must be 1393 removed. 1394 139520180406: 1396 In addition to supporting RFC 3164 formatted messages, the 1397 syslogd(8) service is now capable of parsing RFC 5424 formatted 1398 log messages. The main benefit of using RFC 5424 is that clients 1399 may now send log messages with timestamps containing year numbers, 1400 microseconds and time zone offsets. 1401 1402 Similarly, the syslog(3) C library function has been altered to 1403 send RFC 5424 formatted messages to the local system logging 1404 daemon. On systems using syslogd(8), this change should have no 1405 negative impact, as long as syslogd(8) and the C library are 1406 updated at the same time. On systems using a different system 1407 logging daemon, it may be necessary to make configuration 1408 adjustments, depending on the software used. 1409 1410 When using syslog-ng, add the 'syslog-protocol' flag to local 1411 input sources to enable parsing of RFC 5424 formatted messages: 1412 1413 source src { 1414 unix-dgram("/var/run/log" flags(syslog-protocol)); 1415 } 1416 1417 When using rsyslog, disable the 'SysSock.UseSpecialParser' option 1418 of the 'imuxsock' module to let messages be processed by the 1419 regular RFC 3164/5424 parsing pipeline: 1420 1421 module(load="imuxsock" SysSock.UseSpecialParser="off") 1422 1423 Do note that these changes only affect communication between local 1424 applications and syslogd(8). The format that syslogd(8) uses to 1425 store messages on disk or forward messages to other systems 1426 remains unchanged. syslogd(8) still uses RFC 3164 for these 1427 purposes. Options to customize this behaviour will be added in the 1428 future. Utilities that process log files stored in /var/log are 1429 thus expected to continue to function as before. 1430 1431 __FreeBSD_version has been incremented to 1200061 to denote this 1432 change. 1433 143420180328: 1435 Support for token ring networks has been removed. If you 1436 have "device token" in your kernel config you should remove 1437 it. No device drivers supported token ring. 1438 143920180323: 1440 makefs was modified to be able to tag ISO9660 El Torito boot catalog 1441 entries as EFI instead of overloading the i386 tag as done previously. 1442 The amd64 mkisoimages.sh script used to build amd64 ISO images for 1443 release was updated to use this. This may mean that makefs must be 1444 updated before "make cdrom" can be run in the release directory. This 1445 should be as simple as: 1446 1447 $ cd $SRCDIR/usr.sbin/makefs 1448 $ make depend all install 1449 145020180212: 1451 FreeBSD boot loader enhanced with Lua scripting. It's purely opt-in for 1452 now by building WITH_LOADER_LUA and WITHOUT_FORTH in /etc/src.conf. 1453 Co-existence for the transition period will come shortly. Booting is a 1454 complex environment and test coverage for Lua-enabled loaders has been 1455 thin, so it would be prudent to assume it might not work and make 1456 provisions for backup boot methods. 1457 145820180211: 1459 devmatch functionality has been turned on in devd. It will automatically 1460 load drivers for unattached devices. This may cause unexpected drivers 1461 to be loaded. Please report any problems to current@ and 1462 imp@freebsd.org. 1463 146420180114: 1465 Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to 1466 6.0.0. Please see the 20141231 entry below for information about 1467 prerequisites and upgrading, if you are not already using clang 3.5.0 1468 or higher. 1469 147020180110: 1471 LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. 1472 This means it is used to link the kernel and userland libraries and 1473 executables, but is not yet installed as /usr/bin/ld by default. 1474 1475 To revert to ld.bfd as the bootstrap linker, in /etc/src.conf set 1476 WITHOUT_LLD_BOOTSTRAP=yes 1477 147820180110: 1479 On i386, pmtimer has been removed. Its functionality has been folded 1480 into apm. It was a no-op on ACPI in current for a while now (but was 1481 still needed on i386 in FreeBSD 11 and earlier). Users may need to 1482 remove it from kernel config files. 1483 148420180104: 1485 The use of RSS hash from the network card aka flowid has been 1486 disabled by default for lagg(4) as it's currently incompatible with 1487 the lacp and loadbalance protocols. 1488 1489 This can be re-enabled by setting the following in loader.conf: 1490 net.link.lagg.default_use_flowid="1" 1491 149220180102: 1493 The SW_WATCHDOG option is no longer necessary to enable the 1494 hardclock-based software watchdog if no hardware watchdog is 1495 configured. As before, SW_WATCHDOG will cause the software 1496 watchdog to be enabled even if a hardware watchdog is configured. 1497 149820171215: 1499 r326887 fixes the issue described in the 20171214 UPDATING entry. 1500 r326888 flips the switch back to building GELI support always. 1501 150220171214: 1503 r362593 broke ZFS + GELI support for reasons unknown. However, 1504 it also broke ZFS support generally, so GELI has been turned off 1505 by default as the lesser evil in r326857. If you boot off ZFS and/or 1506 GELI, it might not be a good time to update. 1507 150820171125: 1509 PowerPC users must update loader(8) by rebuilding world before 1510 installing a new kernel, as the protocol connecting them has 1511 changed. Without the update, loader metadata will not be passed 1512 successfully to the kernel and users will have to enter their 1513 root partition at the kernel mountroot prompt to continue booting. 1514 Newer versions of loader can boot old kernels without issue. 1515 151620171110: 1517 The LOADER_FIREWIRE_SUPPORT build variable has been renamed to 1518 WITH/OUT_LOADER_FIREWIRE. LOADER_{NO_,}GELI_SUPPORT has been renamed 1519 to WITH/OUT_LOADER_GELI. 1520 152120171106: 1522 The naive and non-compliant support of posix_fallocate(2) in ZFS 1523 has been removed as of r325320. The system call now returns EINVAL 1524 when used on a ZFS file. Although the new behavior complies with the 1525 standard, some consumers are not prepared to cope with it. 1526 One known victim is lld prior to r325420. 1527 152820171102: 1529 Building in a FreeBSD src checkout will automatically create object 1530 directories now rather than store files in the current directory if 1531 'make obj' was not ran. Calling 'make obj' is no longer necessary. 1532 This feature can be disabled by setting WITHOUT_AUTO_OBJ=yes in 1533 /etc/src-env.conf (not /etc/src.conf), or passing the option in the 1534 environment. 1535 153620171101: 1537 The default MAKEOBJDIR has changed from /usr/obj/<srcdir> for native 1538 builds, and /usr/obj/<arch>/<srcdir> for cross-builds, to a unified 1539 /usr/obj/<srcdir>/<arch>. This behavior can be changed to the old 1540 format by setting WITHOUT_UNIFIED_OBJDIR=yes in /etc/src-env.conf, 1541 the environment, or with -DWITHOUT_UNIFIED_OBJDIR when building. 1542 The UNIFIED_OBJDIR option is a transitional feature that will be 1543 removed for 12.0 release; please migrate to the new format for any 1544 tools by looking up the OBJDIR used by 'make -V .OBJDIR' means rather 1545 than hardcoding paths. 1546 154720171028: 1548 The native-xtools target no longer installs the files by default to the 1549 OBJDIR. Use the native-xtools-install target with a DESTDIR to install 1550 to ${DESTDIR}/${NXTP} where NXTP defaults to /nxb-bin. 1551 155220171021: 1553 As part of the boot loader infrastructure cleanup, LOADER_*_SUPPORT 1554 options are changing from controlling the build if defined / undefined 1555 to controlling the build with explicit 'yes' or 'no' values. They will 1556 shift to WITH/WITHOUT options to match other options in the system. 1557 155820171010: 1559 libstand has turned into a private library for sys/boot use only. 1560 It is no longer supported as a public interface outside of sys/boot. 1561 156220171005: 1563 The arm port has split armv6 into armv6 and armv7. armv7 is now 1564 a valid TARGET_ARCH/MACHINE_ARCH setting. If you have an armv7 system 1565 and are running a kernel from before r324363, you will need to add 1566 MACHINE_ARCH=armv7 to 'make buildworld' to do a native build. 1567 156820171003: 1569 When building multiple kernels using KERNCONF, non-existent KERNCONF 1570 files will produce an error and buildkernel will fail. Previously 1571 missing KERNCONF files silently failed giving no indication as to 1572 why, only to subsequently discover during installkernel that the 1573 desired kernel was never built in the first place. 1574 157520170912: 1576 The default serial number format for CTL LUNs has changed. This will 1577 affect users who use /dev/diskid/* device nodes, or whose FibreChannel 1578 or iSCSI clients care about their LUNs' serial numbers. Users who 1579 require serial number stability should hardcode serial numbers in 1580 /etc/ctl.conf . 1581 158220170912: 1583 For 32-bit arm compiled for hard-float support, soft-floating point 1584 binaries now always get their shared libraries from 1585 LD_SOFT_LIBRARY_PATH (in the past, this was only used if 1586 /usr/libsoft also existed). Only users with a hard-float ld.so, but 1587 soft-float everything else should be affected. 1588 158920170826: 1590 The geli password typed at boot is now hidden. To restore the previous 1591 behavior, see geli(8) for configuration options. 1592 159320170825: 1594 Move PMTUD blackhole counters to TCPSTATS and remove them from bare 1595 sysctl values. Minor nit, but requires a rebuild of both world/kernel 1596 to complete. 1597 159820170814: 1599 "make check" behavior (made in ^/head@r295380) has been changed to 1600 execute from a limited sandbox, as opposed to executing from 1601 ${TESTSDIR}. 1602 1603 Behavioral changes: 1604 - The "beforecheck" and "aftercheck" targets are now specified. 1605 - ${CHECKDIR} (added in commit noted above) has been removed. 1606 - Legacy behavior can be enabled by setting 1607 WITHOUT_MAKE_CHECK_USE_SANDBOX in src.conf(5) or the environment. 1608 1609 If the limited sandbox mode is enabled, "make check" will execute 1610 "make distribution", then install, execute the tests, and clean up the 1611 sandbox if successful. 1612 1613 The "make distribution" and "make install" targets are typically run as 1614 root to set appropriate permissions and ownership at installation time. 1615 The end-user should set "WITH_INSTALL_AS_USER" in src.conf(5) or the 1616 environment if executing "make check" with limited sandbox mode using 1617 an unprivileged user. 1618 161920170808: 1620 Since the switch to GPT disk labels, fsck for UFS/FFS has been 1621 unable to automatically find alternate superblocks. As of r322297, 1622 the information needed to find alternate superblocks has been 1623 moved to the end of the area reserved for the boot block. 1624 Filesystems created with a newfs of this vintage or later 1625 will create the recovery information. If you have a filesystem 1626 created prior to this change and wish to have a recovery block 1627 created for your filesystem, you can do so by running fsck in 1628 foreground mode (i.e., do not use the -p or -y options). As it 1629 starts, fsck will ask ``SAVE DATA TO FIND ALTERNATE SUPERBLOCKS'' 1630 to which you should answer yes. 1631 163220170728: 1633 As of r321665, an NFSv4 server configuration that services 1634 Kerberos mounts or clients that do not support the uid/gid in 1635 owner/owner_group string capability, must explicitly enable 1636 the nfsuserd daemon by adding nfsuserd_enable="YES" to the 1637 machine's /etc/rc.conf file. 1638 163920170722: 1640 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 5.0.0. 1641 Please see the 20141231 entry below for information about prerequisites 1642 and upgrading, if you are not already using clang 3.5.0 or higher. 1643 164420170701: 1645 WITHOUT_RCMDS is now the default. Set WITH_RCMDS if you need the 1646 r-commands (rlogin, rsh, etc.) to be built with the base system. 1647 164820170625: 1649 The FreeBSD/powerpc platform now uses a 64-bit type for time_t. This is 1650 a very major ABI incompatible change, so users of FreeBSD/powerpc must 1651 be careful when performing source upgrades. It is best to run 1652 'make installworld' from an alternate root system, either a live 1653 CD/memory stick, or a temporary root partition. Additionally, all ports 1654 must be recompiled. powerpc64 is largely unaffected, except in the case 1655 of 32-bit compatibility. All 32-bit binaries will be affected. 1656 165720170623: 1658 Forward compatibility for the "ino64" project have been committed. This 1659 will allow most new binaries to run on older kernels in a limited 1660 fashion. This prevents many of the common foot-shooting actions in the 1661 upgrade as well as the limited ability to roll back the kernel across 1662 the ino64 upgrade. Complicated use cases may not work properly, though 1663 enough simpler ones work to allow recovery in most situations. 1664 166520170620: 1666 Switch back to the BSDL dtc (Device Tree Compiler). Set WITH_GPL_DTC 1667 if you require the GPL compiler. 1668 166920170619: 1670 Forward compatibility for the "ino64" project have been committed. This 1671 will allow most new binaries to run on older kernels in a limited 1672 fashion. This prevents many of the common foot-shooting actions in the 1673 upgrade as well as the limited ability to roll back the kernel across 1674 the ino64 upgrade. Complicated use cases may not work properly, though 1675 enough simpler ones work to allow recovery in most situations. 1676 167720170618: 1678 The internal ABI used for communication between the NFS kernel modules 1679 was changed by r320085, so __FreeBSD_version was bumped to 1680 ensure all the NFS related modules are updated together. 1681 168220170617: 1683 The ABI of struct event was changed by extending the data 1684 member to 64bit and adding ext fields. For upgrade, same 1685 precautions as for the entry 20170523 "ino64" must be 1686 followed. 1687 168820170531: 1689 The GNU roff toolchain has been removed from base. To render manpages 1690 which are not supported by mandoc(1), man(1) can fallback on GNU roff 1691 from ports (and recommends to install it). 1692 To render roff(7) documents, consider using GNU roff from ports or the 1693 heirloom doctools roff toolchain from ports via pkg install groff or 1694 via pkg install heirloom-doctools. 1695 169620170524: 1697 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 1698 smaller runtime footprint builds. This is useful for embedded systems 1699 which only require one chipset support. 1700 1701 If you load it as a module, make sure this is in /boot/loader.conf: 1702 1703 if_ath_load="YES" 1704 1705 This will load the HAL, all chip/RF backends and if_ath_pci. 1706 If you have if_ath_pci in /boot/loader.conf, ensure it is after 1707 if_ath or it will not load any HAL chipset support. 1708 1709 If you want to selectively load things (eg on cheaper ARM/MIPS 1710 platforms where RAM is at a premium) you should: 1711 1712 * load ath_hal 1713 * load the chip modules in question 1714 * load ath_rate, ath_dfs 1715 * load ath_main 1716 * load if_ath_pci and/or if_ath_ahb depending upon your particular 1717 bus bind type - this is where probe/attach is done. 1718 1719 For further comments/feedback, poke adrian@ . 1720 172120170523: 1722 The "ino64" 64-bit inode project has been committed, which extends 1723 a number of types to 64 bits. Upgrading in place requires care and 1724 adherence to the documented upgrade procedure. 1725 1726 If using a custom kernel configuration ensure that the 1727 COMPAT_FREEBSD11 option is included (as during the upgrade the 1728 system will be running the ino64 kernel with the existing world). 1729 1730 For the safest in-place upgrade begin by removing previous build 1731 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the full 1732 procedure documented below under the heading "To rebuild everything and 1733 install it on the current system." Specifically, a reboot is required 1734 after installing the new kernel before installing world. While an 1735 installworld normally works by accident from multiuser after rebooting 1736 the proper kernel, there are many cases where this will fail across this 1737 upgrade and installworld from single user is required. 1738 173920170424: 1740 The NATM framework including the en(4), fatm(4), hatm(4), and 1741 patm(4) devices has been removed. Consumers should plan a 1742 migration before the end-of-life date for FreeBSD 11. 1743 174420170420: 1745 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 1746 diff has not been implemented, if those are needed a newer version of 1747 GNU diff is available via the diffutils package under the gdiff name. 1748 174920170413: 1750 As of r316810 for ipfilter, keep frags is no longer assumed when 1751 keep state is specified in a rule. r316810 aligns ipfilter with 1752 documentation in man pages separating keep frags from keep state. 1753 This allows keep state to be specified without forcing keep frags 1754 and allows keep frags to be specified independently of keep state. 1755 To maintain previous behaviour, also specify keep frags with 1756 keep state (as documented in ipf.conf.5). 1757 175820170407: 1759 arm64 builds now use the base system LLD 4.0.0 linker by default, 1760 instead of requiring that the aarch64-binutils port or package be 1761 installed. To continue using aarch64-binutils, set 1762 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 1763 176420170405: 1765 The UDP optimization in entry 20160818 that added the sysctl 1766 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 1767 packets will no longer be treated as L3 broadcast packets. 1768 176920170331: 1770 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 1771 use any explicitly assigned loopback address available in the jail 1772 instead of using the first assigned address of the jail. 1773 177420170329: 1775 The ctl.ko module no longer implements the iSCSI target frontend: 1776 cfiscsi.ko does instead. 1777 1778 If building cfiscsi.ko as a kernel module, the module can be loaded 1779 via one of the following methods: 1780 - `cfiscsi_load="YES"` in loader.conf(5). 1781 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 1782 - ctladm(8)/ctld(8), when compiled with iSCSI support 1783 (`WITH_ISCSI=yes` in src.conf(5)) 1784 1785 Please see cfiscsi(4) for more details. 1786 178720170316: 1788 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 1789 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 1790 same source (previously, the dependency of mmcsd.ko on mmc.ko was 1791 missing, but mmcsd.ko now will refuse to load if it is incompatible 1792 with mmc.ko). 1793 179420170315: 1795 The syntax of ipfw(8) named states was changed to avoid ambiguity. 1796 If you have used named states in the firewall rules, you need to modify 1797 them after installworld and before rebooting. Now named states must 1798 be prefixed with colon. 1799 180020170311: 1801 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 1802 removed as the userland we provide cannot use them. The KMS version 1803 (sys/dev/drm2) supports the same hardware. 1804 180520170302: 1806 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 1807 Please see the 20141231 entry below for information about prerequisites 1808 and upgrading, if you are not already using clang 3.5.0 or higher. 1809 181020170221: 1811 The code that provides support for ZFS .zfs/ directory functionality 1812 has been reimplemented. It's not possible now to create a snapshot 1813 by mkdir under .zfs/snapshot/. That should be the only user visible 1814 change. 1815 181620170216: 1817 EISA bus support has been removed. The WITH_EISA option is no longer 1818 valid. 1819 182020170215: 1821 MCA bus support has been removed. 1822 182320170127: 1824 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 1825 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 1826 182720170112: 1828 The EM_MULTIQUEUE kernel configuration option is deprecated now that 1829 the em(4) driver conforms to iflib specifications. 1830 183120170109: 1832 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 1833 IFLIB. If you have a custom kernel configuration that excludes em(4) 1834 but you use igb(4), you need to re-add em(4) to your custom 1835 configuration. 1836 183720161217: 1838 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 1839 Please see the 20141231 entry below for information about prerequisites 1840 and upgrading, if you are not already using clang 3.5.0 or higher. 1841 184220161124: 1843 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 1844 Please see the 20141231 entry below for information about prerequisites 1845 and upgrading, if you are not already using clang 3.5.0 or higher. 1846 184720161119: 1848 The layout of the pmap structure has changed for powerpc to put the pmap 1849 statistics at the front for all CPU variations. libkvm(3) and all tools 1850 that link against it need to be recompiled. 1851 185220161030: 1853 isl(4) and cyapa(4) drivers now require a new driver, 1854 chromebook_platform(4), to work properly on Chromebook-class hardware. 1855 On other types of hardware the drivers may need to be configured using 1856 device hints. Please see the corresponding manual pages for details. 1857 185820161017: 1859 The urtwn(4) driver was merged into rtwn(4) and now consists of 1860 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 1861 parts. 1862 Also, firmware for RTL8188CE was renamed due to possible name 1863 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 1864 186520161015: 1866 GNU rcs has been removed from base. It is available as packages: 1867 - rcs: Latest GPLv3 GNU rcs version. 1868 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 1869 removed from base. 1870 187120161008: 1872 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 1873 modules now requires that the kernel configuration contain the 1874 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 1875 187620161003: 1877 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 1878 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 1879 188020160924: 1881 Relocatable object files with the extension of .So have been renamed 1882 to use an extension of .pico instead. The purpose of this change is 1883 to avoid a name clash with shared libraries on case-insensitive file 1884 systems. On those file systems, foo.So is the same file as foo.so. 1885 188620160918: 1887 GNU rcs has been turned off by default. It can (temporarily) be built 1888 again by adding WITH_RCS knob in src.conf. 1889 Otherwise, GNU rcs is available from packages: 1890 - rcs: Latest GPLv3 GNU rcs version. 1891 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 1892 189320160918: 1894 The backup_uses_rcs functionality has been removed from rc.subr. 1895 189620160908: 1897 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 1898 two separate components, QUEUE_MACRO_DEBUG_TRACE and 1899 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 1900 QUEUE_MACRO_DEBUG behavior. 1901 190220160824: 1903 r304787 changed some ioctl interfaces between the iSCSI userspace 1904 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 1905 rebuilt to work with new kernels. __FreeBSD_version has been bumped 1906 to 1200005. 1907 190820160818: 1909 The UDP receive code has been updated to only treat incoming UDP 1910 packets that were addressed to an L2 broadcast address as L3 1911 broadcast packets. It is not expected that this will affect any 1912 standards-conforming UDP application. The new behaviour can be 1913 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 1914 0. 1915 191620160818: 1917 Remove the openbsd_poll system call. 1918 __FreeBSD_version has been bumped because of this. 1919 192020160708: 1921 The stable/11 branch has been created from head@r302406. 1922 1923After branch N is created, entries older than the N-2 branch point are removed 1924from this file. After stable/14 is branched and current becomes FreeBSD 15, 1925entries older than stable/12 branch point will be removed from current's 1926UPDATING file. 1927 1928COMMON ITEMS: 1929 1930 General Notes 1931 ------------- 1932 Sometimes, obscure build problems are the result of environment 1933 poisoning. This can happen because the make utility reads its 1934 environment when searching for values for global variables. To run 1935 your build attempts in an "environmental clean room", prefix all make 1936 commands with 'env -i '. See the env(1) manual page for more details. 1937 Occasionally a build failure will occur with "make -j" due to a race 1938 condition. If this happens try building again without -j, and please 1939 report a bug if it happens consistently. 1940 1941 When upgrading from one major version to another it is generally best to 1942 upgrade to the latest code in the currently installed branch first, then 1943 do an upgrade to the new branch. This is the best-tested upgrade path, 1944 and has the highest probability of being successful. Please try this 1945 approach if you encounter problems with a major version upgrade. Since 1946 the stable 4.x branch point, one has generally been able to upgrade from 1947 anywhere in the most recent stable branch to head / current (or even the 1948 last couple of stable branches). See the top of this file when there's 1949 an exception. 1950 1951 The update process will emit an error on an attempt to perform a build 1952 or install from a FreeBSD version below the earliest supported version. 1953 When updating from an older version the update should be performed one 1954 major release at a time, including running `make delete-old` at each 1955 step. 1956 1957 When upgrading a live system, having a root shell around before 1958 installing anything can help undo problems. Not having a root shell 1959 around can lead to problems if pam has changed too much from your 1960 starting point to allow continued authentication after the upgrade. 1961 1962 This file should be read as a log of events. When a later event changes 1963 information of a prior event, the prior event should not be deleted. 1964 Instead, a pointer to the entry with the new information should be 1965 placed in the old entry. Readers of this file should also sanity check 1966 older entries before relying on them blindly. Authors of new entries 1967 should write them with this in mind. 1968 1969 ZFS notes 1970 --------- 1971 When upgrading the boot ZFS pool to a new version (via zpool upgrade), 1972 always follow these three steps: 1973 1974 1) recompile and reinstall the ZFS boot loader and boot block 1975 (this is part of "make buildworld" and "make installworld") 1976 1977 2) update the ZFS boot block on your boot drive (only required when 1978 doing a zpool upgrade): 1979 1980 When booting on x86 via BIOS, use the following to update the ZFS boot 1981 block on the freebsd-boot partition of a GPT partitioned drive ada0: 1982 gpart bootcode -p /boot/gptzfsboot -i $N ada0 1983 The value $N will typically be 1. For EFI booting, see EFI notes. 1984 1985 3) zpool upgrade the root pool. New bootblocks will work with old 1986 pools, but not vice versa, so they need to be updated before any 1987 zpool upgrade. 1988 1989 Non-boot pools do not need these updates. 1990 1991 EFI notes 1992 --------- 1993 1994 There are two locations the boot loader can be installed into. The 1995 current location (and the default) is \efi\freebsd\loader.efi and using 1996 efibootmgr(8) to configure it. The old location, that must be used on 1997 deficient systems that don't honor efibootmgr(8) protocols, is the 1998 fallback location of \EFI\BOOT\BOOTxxx.EFI. Generally, you will copy 1999 /boot/loader.efi to this location, but on systems installed a long time 2000 ago the ESP may be too small and /boot/boot1.efi may be needed unless 2001 the ESP has been expanded in the meantime. 2002 2003 Recent systems will have the ESP mounted on /boot/efi, but older ones 2004 may not have it mounted at all, or mounted in a different 2005 location. Older arm SD images with MBR used /boot/msdos as the 2006 mountpoint. The ESP is a MSDOS filesystem. 2007 2008 The EFI boot loader rarely needs to be updated. For ZFS booting, 2009 however, you must update loader.efi before you do 'zpool upgrade' the 2010 root zpool, otherwise the old loader.efi may reject the upgraded zpool 2011 since it does not automatically understand some new features. 2012 2013 See loader.efi(8) and uefi(8) for more details. 2014 2015 To build a kernel 2016 ----------------- 2017 If you are updating from a prior version of FreeBSD (even one just 2018 a few days old), you should follow this procedure. It is the most 2019 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2020 2021 make kernel-toolchain 2022 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2023 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 2024 2025 If you are running kernel modules from ports, see FOOTNOTE [1]. 2026 2027 To test a kernel once 2028 --------------------- 2029 If you just want to boot a kernel once (because you are not sure 2030 if it works, or if you want to boot a known bad kernel to provide 2031 debugging information) run 2032 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2033 nextboot -k testkernel 2034 2035 To rebuild everything and install it on the current system. 2036 ----------------------------------------------------------- 2037 # Note: sometimes if you are running current you gotta do more than 2038 # is listed here if you are upgrading from a really old current. 2039 2040 <make sure you have good level 0 dumps> 2041 make buildworld 2042 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2043 make installkernel KERNCONF=YOUR_KERNEL_HERE [1] 2044 <reboot in single user> [3] 2045 etcupdate -p [5] 2046 make installworld 2047 etcupdate -B [4] 2048 make delete-old [6] 2049 <reboot> 2050 2051 To cross-install current onto a separate partition 2052 -------------------------------------------------- 2053 # In this approach we use a separate partition to hold 2054 # current's root, 'usr', and 'var' directories. A partition 2055 # holding "/", "/usr" and "/var" should be about 2GB in 2056 # size. 2057 2058 <make sure you have good level 0 dumps> 2059 <boot into -stable> 2060 make buildworld 2061 make buildkernel KERNCONF=YOUR_KERNEL_HERE [1] 2062 <maybe newfs current's root partition> 2063 <mount current's root partition on directory ${CURRENT_ROOT}> 2064 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 2065 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2066 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2067 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2068 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2069 <reboot into current> 2070 <do a "native" rebuild/install as described in the previous section> 2071 <maybe install compatibility libraries from ports/misc/compat*> 2072 <reboot> 2073 2074 2075 To upgrade in-place from stable to current 2076 ---------------------------------------------- 2077 <make sure you have good level 0 dumps> 2078 make buildworld [9] 2079 make buildkernel KERNCONF=YOUR_KERNEL_HERE [8] 2080 make installkernel KERNCONF=YOUR_KERNEL_HERE [1] 2081 <reboot in single user> [3] 2082 etcupdate -p [5] 2083 make installworld 2084 etcupdate -B [4] 2085 make delete-old [6] 2086 <reboot> 2087 2088 Make sure that you've read the UPDATING file to understand the 2089 tweaks to various things you need. At this point in the life 2090 cycle of current, things change often and you are on your own 2091 to cope. The defaults can also change, so please read ALL of 2092 the UPDATING entries. 2093 2094 Also, if you are tracking -current, you must be subscribed to 2095 freebsd-current@freebsd.org. Make sure that before you update 2096 your sources that you have read and understood all the recent 2097 messages there. If in doubt, please track -stable which has 2098 much fewer pitfalls. 2099 2100FOOTNOTES: 2101 2102 [1] If you have third party modules, such as drm-kmod or vmware, you 2103 should disable them at this point so they don't crash your system on 2104 reboot. Alternatively, you should rebuild all the modules you have in 2105 your system and install them as well. If you are running -current, you 2106 should seriously consider placing all sources to all the modules for 2107 your system (or symlinks to them) in /usr/local/sys/modules so this 2108 happens automatically. If all your modules come from ports, then adding 2109 the port origin directories to PORTS_MODULES instead is also automatic 2110 and effective, eg: 2111 PORTS_MODULES+=x11/nvidia-driver 2112 2113 [3] From the bootblocks, boot -s, and then do 2114 fsck -p 2115 mount -u / 2116 mount -a 2117 sh /etc/rc.d/zfs start # mount zfs filesystem, if needed 2118 cd src # full path to source 2119 adjkerntz -i # if CMOS is wall time 2120 Also, when doing a major release upgrade, it is required that you boot 2121 into single user mode to do the installworld. 2122 2123 [4] Note: This step is non-optional. Failure to do this step 2124 can result in a significant reduction in the functionality of the 2125 system. Attempting to do it by hand is not recommended and those 2126 that pursue this avenue should read this file carefully, as well 2127 as the archives of freebsd-current and freebsd-hackers mailing lists 2128 for potential gotchas. See etcupdate(8) for more information. 2129 2130 [5] Usually this step is a no-op. However, from time to time 2131 you may need to do this if you get unknown user in the following 2132 step. 2133 2134 [6] This only deletes old files and directories. Old libraries 2135 can be deleted by "make delete-old-libs", but you have to make 2136 sure that no program is using those libraries anymore. 2137 2138 [8] The new kernel must be able to run existing binaries used by an 2139 installworld. When upgrading across major versions, the new kernel's 2140 configuration must include the correct COMPAT_FREEBSD<n> option for 2141 existing binaries (e.g. COMPAT_FREEBSD11 to run 11.x binaries). Failure 2142 to do so may leave you with a system that is hard to boot to recover. A 2143 GENERIC kernel will include suitable compatibility options to run 2144 binaries from older branches. Note that the ability to run binaries 2145 from unsupported branches is not guaranteed. 2146 2147 Make sure that you merge any new devices from GENERIC since the 2148 last time you updated your kernel config file. Options also 2149 change over time, so you may need to adjust your custom kernels 2150 for these as well. 2151 2152 [9] If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2153 "?=" instead of the "=" assignment operator, so that buildworld can 2154 override the CPUTYPE if it needs to. 2155 2156 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2157 not on the command line, or in /etc/make.conf. buildworld will 2158 warn if it is improperly defined. 2159FORMAT: 2160 2161This file contains a list, in reverse chronological order, of major 2162breakages in tracking -current. It is not guaranteed to be a complete 2163list of such breakages, and only contains entries since September 23, 2011. 2164If you need to see UPDATING entries from before that date, you will need 2165to fetch an UPDATING file from an older FreeBSD release. 2166 2167Copyright information: 2168 2169Copyright 1998-2009 M. Warner Losh <imp@FreeBSD.org> 2170 2171Redistribution, publication, translation and use, with or without 2172modification, in full or in part, in any form or format of this 2173document are permitted without further permission from the author. 2174 2175THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2176IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2177WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2178DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2179INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2180(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2181SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2182HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2183STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2184IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2185POSSIBILITY OF SUCH DAMAGE. 2186 2187Contact Warner Losh if you have any questions about your use of 2188this document. 2189