1Updating Information for FreeBSD current users. 2 3This file is maintained and copyrighted by M. Warner Losh <imp@freebsd.org>. 4See end of file for further details. For commonly done items, please see the 5COMMON ITEMS: section later in the file. These instructions assume that you 6basically know what you are doing. If not, then please consult the FreeBSD 7handbook: 8 9 https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/updating-src.html 10 11Items affecting the ports and packages system can be found in 12/usr/ports/UPDATING. Please read that file before running portupgrade. 13 14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping 15from older versions of FreeBSD, try WITHOUT_CLANG and WITH_GCC to bootstrap to 16the tip of head, and then rebuild without this option. The bootstrap process 17from older version of current across the gcc/clang cutover is a bit fragile. 18 19NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: 20 FreeBSD 12.x has many debugging features turned on, in both the kernel 21 and userland. These features attempt to detect incorrect use of 22 system primitives, and encourage loud failure through extra sanity 23 checking and fail stop semantics. They also substantially impact 24 system performance. If you want to do performance measurement, 25 benchmarking, and optimization, you'll want to turn them off. This 26 includes various WITNESS- related kernel options, INVARIANTS, malloc 27 debugging flags in userland, and various verbose features in the 28 kernel. Many developers choose to disable these features on build 29 machines to maximize performance. (To completely disable malloc 30 debugging, define MALLOC_PRODUCTION in /etc/make.conf, or to merely 31 disable the most expensive debugging functionality run 32 "ln -s 'abort:false,junk:false' /etc/malloc.conf".) 33 34 35****************************** SPECIAL WARNING: ****************************** 36 37 Due to a bug in some versions of clang that's very hard to workaround in 38 the upgrade process, to upgrade to -current you must first upgrade 39 either stable/9 after r286035 or stable/10 after r286033 (including 40 10.3-RELEASE) or current after r286007 (including stable/11 and 41 11.0-RELEASE). These revisions post-date the 10.2 and 9.3 releases, so 42 you'll need to take the unusual step of upgrading to the tip of the 43 stable branch before moving to 11 or -current via a source upgrade. 44 stable/11 and 11.0-RELEASE have working newer compiler. This differs 45 from the historical situation where one could upgrade from anywhere on 46 the last couple of stable branches, so be careful. 47 48 If you're running a hybrid system on 9.x or 10.x with an updated clang 49 compiler or are using an supported external toolchain, the build system 50 will allow the upgrade. Otherwise it will print a reminder. 51 52****************************** SPECIAL WARNING: ****************************** 53 5420170618: 55 The internal ABI used for communication between the NFS kernel modules 56 was changed by r320085, so __FreeBSD_version was bumped to 57 ensure all the NFS related modules are updated together. 58 5920170617: 60 The ABI of struct event was changed by extending the data 61 member to 64bit and adding ext fields. For upgrade, same 62 precautions as for the entry 20170523 "ino64" must be 63 followed. 64 6520170531: 66 The GNU roff toolchain has been removed from base. To render manpages 67 which are not supported by mandoc(1), man(1) can fallback on GNU roff 68 from ports (and recommends to install it). 69 To render roff(7) documents, consider using GNU roff from ports or the 70 heirloom doctools roff toolchain from ports via pkg install groff or 71 via pkg install heirloom-doctools. 72 7320170524: 74 The ath(4) and ath_hal(4) modules now build piecemeal to allow for 75 smaller runtime footprint builds. This is useful for embedded systems 76 which only require one chipset support. 77 78 If you load it as a module, make sure this is in /boot/loader.conf: 79 80 if_ath_load="YES" 81 82 This will load the HAL, all chip/RF backends and if_ath_pci. 83 If you have if_ath_pci in /boot/loader.conf, ensure it is after 84 if_ath or it will not load any HAL chipset support. 85 86 If you want to selectively load things (eg on ye cheape ARM/MIPS 87 platforms where RAM is at a premium) you should: 88 89 * load ath_hal 90 * load the chip modules in question 91 * load ath_rate, ath_dfs 92 * load ath_main 93 * load if_ath_pci and/or if_ath_ahb depending upon your particular 94 bus bind type - this is where probe/attach is done. 95 96 For further comments/feedback, poke adrian@ . 97 9820170523: 99 The "ino64" 64-bit inode project has been committed, which extends 100 a number of types to 64 bits. Upgrading in place requires care and 101 adherence to the documented upgrade procedure. 102 103 If using a custom kernel configuration ensure that the 104 COMPAT_FREEBSD11 option is included (as during the upgrade the 105 system will be running the ino64 kernel with the existing world). 106 107 For the safest in-place upgrade begin by removing previous build 108 artifacts via "rm -rf /usr/obj/*". Then, carefully follow the 109 full procedure documented below under the heading "To rebuild 110 everything and install it on the current system." Specifically, 111 a reboot is required after installing the new kernel before 112 installing world. 113 11420170424: 115 The NATM framework including the en(4), fatm(4), hatm(4), and 116 patm(4) devices has been removed. Consumers should plan a 117 migration before the end-of-life date for FreeBSD 11. 118 11920170420: 120 GNU diff has been replaced by a BSD licensed diff. Some features of GNU 121 diff has not been implemented, if those are needed a newer version of 122 GNU diff is available via the diffutils package under the gdiff name. 123 12420170413: 125 As of r316810 for ipfilter, keep frags is no longer assumed when 126 keep state is specified in a rule. r316810 aligns ipfilter with 127 documentation in man pages separating keep frags from keep state. 128 This allows keep state to be specified without forcing keep frags 129 and allows keep frags to be specified independently of keep state. 130 To maintain previous behaviour, also specify keep frags with 131 keep state (as documented in ipf.conf.5). 132 13320170407: 134 arm64 builds now use the base system LLD 4.0.0 linker by default, 135 instead of requiring that the aarch64-binutils port or package be 136 installed. To continue using aarch64-binutils, set 137 CROSS_BINUTILS_PREFIX=/usr/local/aarch64-freebsd/bin . 138 13920170405: 140 The UDP optimization in entry 20160818 that added the sysctl 141 net.inet.udp.require_l2_bcast has been reverted. L2 broadcast 142 packets will no longer be treated as L3 broadcast packets. 143 14420170331: 145 Binds and sends to the loopback addresses, IPv6 and IPv4, will now 146 use any explicitly assigned loopback address available in the jail 147 instead of using the first assigned address of the jail. 148 14920170329: 150 The ctl.ko module no longer implements the iSCSI target frontend: 151 cfiscsi.ko does instead. 152 153 If building cfiscsi.ko as a kernel module, the module can be loaded 154 via one of the following methods: 155 - `cfiscsi_load="YES"` in loader.conf(5). 156 - Add `cfiscsi` to `$kld_list` in rc.conf(5). 157 - ctladm(8)/ctld(8), when compiled with iSCSI support 158 (`WITH_ISCSI=yes` in src.conf(5)) 159 160 Please see cfiscsi(4) for more details. 161 16220170316: 163 The mmcsd.ko module now additionally depends on geom_flashmap.ko. 164 Also, mmc.ko and mmcsd.ko need to be a matching pair built from the 165 same source (previously, the dependency of mmcsd.ko on mmc.ko was 166 missing, but mmcsd.ko now will refuse to load if it is incompatible 167 with mmc.ko). 168 16920170315: 170 The syntax of ipfw(8) named states was changed to avoid ambiguity. 171 If you have used named states in the firewall rules, you need to modify 172 them after installworld and before rebooting. Now named states must 173 be prefixed with colon. 174 17520170311: 176 The old drm (sys/dev/drm/) drivers for i915 and radeon have been 177 removed as the userland we provide cannot use them. The KMS version 178 (sys/dev/drm2) supports the same hardware. 179 18020170302: 181 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 4.0.0. 182 Please see the 20141231 entry below for information about prerequisites 183 and upgrading, if you are not already using clang 3.5.0 or higher. 184 18520170221: 186 The code that provides support for ZFS .zfs/ directory functionality 187 has been reimplemented. It's not possible now to create a snapshot 188 by mkdir under .zfs/snapshot/. That should be the only user visible 189 change. 190 19120170216: 192 EISA bus support has been removed. The WITH_EISA option is no longer 193 valid. 194 19520170215: 196 MCA bus support has been removed. 197 19820170127: 199 The WITH_LLD_AS_LD / WITHOUT_LLD_AS_LD build knobs have been renamed 200 WITH_LLD_IS_LD / WITHOUT_LLD_IS_LD, for consistency with CLANG_IS_CC. 201 20220170112: 203 The EM_MULTIQUEUE kernel configuration option is deprecated now that 204 the em(4) driver conforms to iflib specifications. 205 20620170109: 207 The igb(4), em(4) and lem(4) ethernet drivers are now implemented via 208 IFLIB. If you have a custom kernel configuration that excludes em(4) 209 but you use igb(4), you need to re-add em(4) to your custom configuration. 210 21120161217: 212 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.1. 213 Please see the 20141231 entry below for information about prerequisites 214 and upgrading, if you are not already using clang 3.5.0 or higher. 215 21620161124: 217 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.9.0. 218 Please see the 20141231 entry below for information about prerequisites 219 and upgrading, if you are not already using clang 3.5.0 or higher. 220 22120161119: 222 The layout of the pmap structure has changed for powerpc to put the pmap 223 statistics at the front for all CPU variations. libkvm(3) and all tools 224 that link against it need to be recompiled. 225 22620161030: 227 isl(4) and cyapa(4) drivers now require a new driver, 228 chromebook_platform(4), to work properly on Chromebook-class hardware. 229 On other types of hardware the drivers may need to be configured using 230 device hints. Please see the corresponding manual pages for details. 231 23220161017: 233 The urtwn(4) driver was merged into rtwn(4) and now consists of 234 rtwn(4) main module + rtwn_usb(4) and rtwn_pci(4) bus-specific 235 parts. 236 Also, firmware for RTL8188CE was renamed due to possible name 237 conflict (rtwnrtl8192cU(B) -> rtwnrtl8192cE(B)) 238 23920161015: 240 GNU rcs has been removed from base. It is available as packages: 241 - rcs: Latest GPLv3 GNU rcs version. 242 - rcs57: Copy of the latest version of GNU rcs (GPLv2) before it was 243 removed from base. 244 24520161008: 246 Use of the cc_cdg, cc_chd, cc_hd, or cc_vegas congestion control 247 modules now requires that the kernel configuration contain the 248 TCP_HHOOK option. (This option is included in the GENERIC kernel.) 249 25020161003: 251 The WITHOUT_ELFCOPY_AS_OBJCOPY src.conf(5) knob has been retired. 252 ELF Tool Chain's elfcopy is always installed as /usr/bin/objcopy. 253 25420160924: 255 Relocatable object files with the extension of .So have been renamed 256 to use an extension of .pico instead. The purpose of this change is 257 to avoid a name clash with shared libraries on case-insensitive file 258 systems. On those file systems, foo.So is the same file as foo.so. 259 26020160918: 261 GNU rcs has been turned off by default. It can (temporarily) be built 262 again by adding WITH_RCS knob in src.conf. 263 Otherwise, GNU rcs is available from packages: 264 - rcs: Latest GPLv3 GNU rcs version. 265 - rcs57: Copy of the latest version of GNU rcs (GPLv2) from base. 266 26720160918: 268 The backup_uses_rcs functionality has been removed from rc.subr. 269 27020160908: 271 The queue(3) debugging macro, QUEUE_MACRO_DEBUG, has been split into 272 two separate components, QUEUE_MACRO_DEBUG_TRACE and 273 QUEUE_MACRO_DEBUG_TRASH. Define both for the original 274 QUEUE_MACRO_DEBUG behavior. 275 27620160824: 277 r304787 changed some ioctl interfaces between the iSCSI userspace 278 programs and the kernel. ctladm, ctld, iscsictl, and iscsid must be 279 rebuilt to work with new kernels. __FreeBSD_version has been bumped 280 to 1200005. 281 28220160818: 283 The UDP receive code has been updated to only treat incoming UDP 284 packets that were addressed to an L2 broadcast address as L3 285 broadcast packets. It is not expected that this will affect any 286 standards-conforming UDP application. The new behaviour can be 287 disabled by setting the sysctl net.inet.udp.require_l2_bcast to 288 0. 289 29020160818: 291 Remove the openbsd_poll system call. 292 __FreeBSD_version has been bumped because of this. 293 29420160622: 295 The libc stub for the pipe(2) system call has been replaced with 296 a wrapper that calls the pipe2(2) system call and the pipe(2) 297 system call is now only implemented by the kernels that include 298 "options COMPAT_FREEBSD10" in their config file (this is the 299 default). Users should ensure that this option is enabled in 300 their kernel or upgrade userspace to r302092 before upgrading their 301 kernel. 302 30320160527: 304 CAM will now strip leading spaces from SCSI disks' serial numbers. 305 This will affect users who create UFS filesystems on SCSI disks using 306 those disk's diskid device nodes. For example, if /etc/fstab 307 previously contained a line like 308 "/dev/diskid/DISK-%20%20%20%20%20%20%20ABCDEFG0123456", you should 309 change it to "/dev/diskid/DISK-ABCDEFG0123456". Users of geom 310 transforms like gmirror may also be affected. ZFS users should 311 generally be fine. 312 31320160523: 314 The bitstring(3) API has been updated with new functionality and 315 improved performance. But it is binary-incompatible with the old API. 316 Objects built with the new headers may not be linked against objects 317 built with the old headers. 318 31920160520: 320 The brk and sbrk functions have been removed from libc on arm64. 321 Binutils from ports has been updated to not link to these 322 functions and should be updated to the latest version before 323 installing a new libc. 324 32520160517: 326 The armv6 port now defaults to hard float ABI. Limited support 327 for running both hardfloat and soft float on the same system 328 is available using the libraries installed with -DWITH_LIBSOFT. 329 This has only been tested as an upgrade path for installworld 330 and packages may fail or need manual intervention to run. New 331 packages will be needed. 332 333 To update an existing self-hosted armv6hf system, you must add 334 TARGET_ARCH=armv6 on the make command line for both the build 335 and the install steps. 336 33720160510: 338 Kernel modules compiled outside of a kernel build now default to 339 installing to /boot/modules instead of /boot/kernel. Many kernel 340 modules built this way (such as those in ports) already overrode 341 KMODDIR explicitly to install into /boot/modules. However, 342 manually building and installing a module from /sys/modules will 343 now install to /boot/modules instead of /boot/kernel. 344 34520160414: 346 The CAM I/O scheduler has been committed to the kernel. There should be 347 no user visible impact. This does enable NCQ Trim on ada SSDs. While the 348 list of known rogues that claim support for this but actually corrupt 349 data is believed to be complete, be on the lookout for data 350 corruption. The known rogue list is believed to be complete: 351 352 o Crucial MX100, M550 drives with MU01 firmware. 353 o Micron M510 and M550 drives with MU01 firmware. 354 o Micron M500 prior to MU07 firmware 355 o Samsung 830, 840, and 850 all firmwares 356 o FCCT M500 all firmwares 357 358 Crucial has firmware http://www.crucial.com/usa/en/support-ssd-firmware 359 with working NCQ TRIM. For Micron branded drives, see your sales rep for 360 updated firmware. Black listed drives will work correctly because these 361 drives work correctly so long as no NCQ TRIMs are sent to them. Given 362 this list is the same as found in Linux, it's believed there are no 363 other rogues in the market place. All other models from the above 364 vendors work. 365 366 To be safe, if you are at all concerned, you can quirk each of your 367 drives to prevent NCQ from being sent by setting: 368 kern.cam.ada.X.quirks="0x2" 369 in loader.conf. If the drive requires the 4k sector quirk, set the 370 quirks entry to 0x3. 371 37220160330: 373 The FAST_DEPEND build option has been removed and its functionality is 374 now the one true way. The old mkdep(1) style of 'make depend' has 375 been removed. See 20160311 for further details. 376 37720160317: 378 Resource range types have grown from unsigned long to uintmax_t. All 379 drivers, and anything using libdevinfo, need to be recompiled. 380 38120160311: 382 WITH_FAST_DEPEND is now enabled by default for in-tree and out-of-tree 383 builds. It no longer runs mkdep(1) during 'make depend', and the 384 'make depend' stage can safely be skipped now as it is auto ran 385 when building 'make all' and will generate all SRCS and DPSRCS before 386 building anything else. Dependencies are gathered at compile time with 387 -MF flags kept in separate .depend files per object file. Users should 388 run 'make cleandepend' once if using -DNO_CLEAN to clean out older 389 stale .depend files. 390 39120160306: 392 On amd64, clang 3.8.0 can now insert sections of type AMD64_UNWIND into 393 kernel modules. Therefore, if you load any kernel modules at boot time, 394 please install the boot loaders after you install the kernel, but before 395 rebooting, e.g.: 396 397 make buildworld 398 make kernel KERNCONF=YOUR_KERNEL_HERE 399 make -C sys/boot install 400 <reboot in single user> 401 402 Then follow the usual steps, described in the General Notes section, 403 below. 404 40520160305: 406 Clang, llvm, lldb and compiler-rt have been upgraded to 3.8.0. Please 407 see the 20141231 entry below for information about prerequisites and 408 upgrading, if you are not already using clang 3.5.0 or higher. 409 41020160301: 411 The AIO subsystem is now a standard part of the kernel. The 412 VFS_AIO kernel option and aio.ko kernel module have been removed. 413 Due to stability concerns, asynchronous I/O requests are only 414 permitted on sockets and raw disks by default. To enable 415 asynchronous I/O requests on all file types, set the 416 vfs.aio.enable_unsafe sysctl to a non-zero value. 417 41820160226: 419 The ELF object manipulation tool objcopy is now provided by the 420 ELF Tool Chain project rather than by GNU binutils. It should be a 421 drop-in replacement, with the addition of arm64 support. The 422 (temporary) src.conf knob WITHOUT_ELFCOPY_AS_OBJCOPY knob may be set 423 to obtain the GNU version if necessary. 424 42520160129: 426 Building ZFS pools on top of zvols is prohibited by default. That 427 feature has never worked safely; it's always been prone to deadlocks. 428 Using a zvol as the backing store for a VM guest's virtual disk will 429 still work, even if the guest is using ZFS. Legacy behavior can be 430 restored by setting vfs.zfs.vol.recursive=1. 431 43220160119: 433 The NONE and HPN patches has been removed from OpenSSH. They are 434 still available in the security/openssh-portable port. 435 43620160113: 437 With the addition of ypldap(8), a new _ypldap user is now required 438 during installworld. "mergemaster -p" can be used to add the user 439 prior to installworld, as documented in the handbook. 440 44120151216: 442 The tftp loader (pxeboot) now uses the option root-path directive. As a 443 consequence it no longer looks for a pxeboot.4th file on the tftp 444 server. Instead it uses the regular /boot infrastructure as with the 445 other loaders. 446 44720151211: 448 The code to start recording plug and play data into the modules has 449 been committed. While the old tools will properly build a new kernel, 450 a number of warnings about "unknown metadata record 4" will be produced 451 for an older kldxref. To avoid such warnings, make sure to rebuild 452 the kernel toolchain (or world). Make sure that you have r292078 or 453 later when trying to build 292077 or later before rebuilding. 454 45520151207: 456 Debug data files are now built by default with 'make buildworld' and 457 installed with 'make installworld'. This facilitates debugging but 458 requires more disk space both during the build and for the installed 459 world. Debug files may be disabled by setting WITHOUT_DEBUG_FILES=yes 460 in src.conf(5). 461 46220151130: 463 r291527 changed the internal interface between the nfsd.ko and 464 nfscommon.ko modules. As such, they must both be upgraded to-gether. 465 __FreeBSD_version has been bumped because of this. 466 46720151108: 468 Add support for unicode collation strings leads to a change of 469 order of files listed by ls(1) for example. To get back to the old 470 behaviour, set LC_COLLATE environment variable to "C". 471 472 Databases administrators will need to reindex their databases given 473 collation results will be different. 474 475 Due to a bug in install(1) it is recommended to remove the ancient 476 locales before running make installworld. 477 478 rm -rf /usr/share/locale/* 479 48020151030: 481 The OpenSSL has been upgraded to 1.0.2d. Any binaries requiring 482 libcrypto.so.7 or libssl.so.7 must be recompiled. 483 48420151020: 485 Qlogic 24xx/25xx firmware images were updated from 5.5.0 to 7.3.0. 486 Kernel modules isp_2400_multi and isp_2500_multi were removed and 487 should be replaced with isp_2400 and isp_2500 modules respectively. 488 48920151017: 490 The build previously allowed using 'make -n' to not recurse into 491 sub-directories while showing what commands would be executed, and 492 'make -n -n' to recursively show commands. Now 'make -n' will recurse 493 and 'make -N' will not. 494 49520151012: 496 If you specify SENDMAIL_MC or SENDMAIL_CF in make.conf, mergemaster 497 and etcupdate will now use this file. A custom sendmail.cf is now 498 updated via this mechanism rather than via installworld. If you had 499 excluded sendmail.cf in mergemaster.rc or etcupdate.conf, you may 500 want to remove the exclusion or change it to "always install". 501 /etc/mail/sendmail.cf is now managed the same way regardless of 502 whether SENDMAIL_MC/SENDMAIL_CF is used. If you are not using 503 SENDMAIL_MC/SENDMAIL_CF there should be no change in behavior. 504 50520151011: 506 Compatibility shims for legacy ATA device names have been removed. 507 It includes ATA_STATIC_ID kernel option, kern.cam.ada.legacy_aliases 508 and kern.geom.raid.legacy_aliases loader tunables, kern.devalias.* 509 environment variables, /dev/ad* and /dev/ar* symbolic links. 510 51120151006: 512 Clang, llvm, lldb, compiler-rt and libc++ have been upgraded to 3.7.0. 513 Please see the 20141231 entry below for information about prerequisites 514 and upgrading, if you are not already using clang 3.5.0 or higher. 515 51620150924: 517 Kernel debug files have been moved to /usr/lib/debug/boot/kernel/, 518 and renamed from .symbols to .debug. This reduces the size requirements 519 on the boot partition or file system and provides consistency with 520 userland debug files. 521 522 When using the supported kernel installation method the 523 /usr/lib/debug/boot/kernel directory will be renamed (to kernel.old) 524 as is done with /boot/kernel. 525 526 Developers wishing to maintain the historical behavior of installing 527 debug files in /boot/kernel/ can set KERN_DEBUGDIR="" in src.conf(5). 528 52920150827: 530 The wireless drivers had undergone changes that remove the 'parent 531 interface' from the ifconfig -l output. The rc.d network scripts 532 used to check presence of a parent interface in the list, so old 533 scripts would fail to start wireless networking. Thus, etcupdate(3) 534 or mergemaster(8) run is required after kernel update, to update your 535 rc.d scripts in /etc. 536 53720150827: 538 pf no longer supports 'scrub fragment crop' or 'scrub fragment drop-ovl' 539 These configurations are now automatically interpreted as 540 'scrub fragment reassemble'. 541 54220150817: 543 Kernel-loadable modules for the random(4) device are back. To use 544 them, the kernel must have 545 546 device random 547 options RANDOM_LOADABLE 548 549 kldload(8) can then be used to load random_fortuna.ko 550 or random_yarrow.ko. Please note that due to the indirect 551 function calls that the loadable modules need to provide, 552 the build-in variants will be slightly more efficient. 553 554 The random(4) kernel option RANDOM_DUMMY has been retired due to 555 unpopularity. It was not all that useful anyway. 556 55720150813: 558 The WITHOUT_ELFTOOLCHAIN_TOOLS src.conf(5) knob has been retired. 559 Control over building the ELF Tool Chain tools is now provided by 560 the WITHOUT_TOOLCHAIN knob. 561 56220150810: 563 The polarity of Pulse Per Second (PPS) capture events with the 564 uart(4) driver has been corrected. Prior to this change the PPS 565 "assert" event corresponded to the trailing edge of a positive PPS 566 pulse and the "clear" event was the leading edge of the next pulse. 567 568 As the width of a PPS pulse in a typical GPS receiver is on the 569 order of 1 millisecond, most users will not notice any significant 570 difference with this change. 571 572 Anyone who has compensated for the historical polarity reversal by 573 configuring a negative offset equal to the pulse width will need to 574 remove that workaround. 575 57620150809: 577 The default group assigned to /dev/dri entries has been changed 578 from 'wheel' to 'video' with the id of '44'. If you want to have 579 access to the dri devices please add yourself to the video group 580 with: 581 582 # pw groupmod video -m $USER 583 58420150806: 585 The menu.rc and loader.rc files will now be replaced during 586 upgrades. Please migrate local changes to menu.rc.local and 587 loader.rc.local instead. 588 58920150805: 590 GNU Binutils versions of addr2line, c++filt, nm, readelf, size, 591 strings and strip have been removed. The src.conf(5) knob 592 WITHOUT_ELFTOOLCHAIN_TOOLS no longer provides the binutils tools. 593 59420150728: 595 As ZFS requires more kernel stack pages than is the default on some 596 architectures e.g. i386, it now warns if KSTACK_PAGES is less than 597 ZFS_MIN_KSTACK_PAGES (which is 4 at the time of writing). 598 599 Please consider using 'options KSTACK_PAGES=X' where X is greater 600 than or equal to ZFS_MIN_KSTACK_PAGES i.e. 4 in such configurations. 601 60220150706: 603 sendmail has been updated to 8.15.2. Starting with FreeBSD 11.0 604 and sendmail 8.15, sendmail uses uncompressed IPv6 addresses by 605 default, i.e., they will not contain "::". For example, instead 606 of ::1, it will be 0:0:0:0:0:0:0:1. This permits a zero subnet 607 to have a more specific match, such as different map entries for 608 IPv6:0:0 vs IPv6:0. This change requires that configuration 609 data (including maps, files, classes, custom ruleset, etc.) must 610 use the same format, so make certain such configuration data is 611 upgrading. As a very simple check search for patterns like 612 'IPv6:[0-9a-fA-F:]*::' and 'IPv6::'. To return to the old 613 behavior, set the m4 option confUSE_COMPRESSED_IPV6_ADDRESSES or 614 the cf option UseCompressedIPv6Addresses. 615 61620150630: 617 The default kernel entropy-processing algorithm is now 618 Fortuna, replacing Yarrow. 619 620 Assuming you have 'device random' in your kernel config 621 file, the configurations allow a kernel option to override 622 this default. You may choose *ONE* of: 623 624 options RANDOM_YARROW # Legacy /dev/random algorithm. 625 options RANDOM_DUMMY # Blocking-only driver. 626 627 If you have neither, you get Fortuna. For most people, 628 read no further, Fortuna will give a /dev/random that works 629 like it always used to, and the difference will be irrelevant. 630 631 If you remove 'device random', you get *NO* kernel-processed 632 entropy at all. This may be acceptable to folks building 633 embedded systems, but has complications. Carry on reading, 634 and it is assumed you know what you need. 635 636 *PLEASE* read random(4) and random(9) if you are in the 637 habit of tweaking kernel configs, and/or if you are a member 638 of the embedded community, wanting specific and not-usual 639 behaviour from your security subsystems. 640 641 NOTE!! If you use RANDOM_DUMMY and/or have no 'device 642 random', you will NOT have a functioning /dev/random, and 643 many cryptographic features will not work, including SSH. 644 You may also find strange behaviour from the random(3) set 645 of library functions, in particular sranddev(3), srandomdev(3) 646 and arc4random(3). The reason for this is that the KERN_ARND 647 sysctl only returns entropy if it thinks it has some to 648 share, and with RANDOM_DUMMY or no 'device random' this 649 will never happen. 650 65120150623: 652 An additional fix for the issue described in the 20150614 sendmail 653 entry below has been been committed in revision 284717. 654 65520150616: 656 FreeBSD's old make (fmake) has been removed from the system. It is 657 available as the devel/fmake port or via pkg install fmake. 658 65920150615: 660 The fix for the issue described in the 20150614 sendmail entry 661 below has been been committed in revision 284436. The work 662 around described in that entry is no longer needed unless the 663 default setting is overridden by a confDH_PARAMETERS configuration 664 setting of '5' or pointing to a 512 bit DH parameter file. 665 66620150614: 667 ALLOW_DEPRECATED_ATF_TOOLS/ATFFILE support has been removed from 668 atf.test.mk (included from bsd.test.mk). Please upgrade devel/atf 669 and devel/kyua to version 0.20+ and adjust any calling code to work 670 with Kyuafile and kyua. 671 67220150614: 673 The import of openssl to address the FreeBSD-SA-15:10.openssl 674 security advisory includes a change which rejects handshakes 675 with DH parameters below 768 bits. sendmail releases prior 676 to 8.15.2 (not yet released), defaulted to a 512 bit 677 DH parameter setting for client connections. To work around 678 this interoperability, sendmail can be configured to use a 679 2048 bit DH parameter by: 680 681 1. Edit /etc/mail/`hostname`.mc 682 2. If a setting for confDH_PARAMETERS does not exist or 683 exists and is set to a string beginning with '5', 684 replace it with '2'. 685 3. If a setting for confDH_PARAMETERS exists and is set to 686 a file path, create a new file with: 687 openssl dhparam -out /path/to/file 2048 688 4. Rebuild the .cf file: 689 cd /etc/mail/; make; make install 690 5. Restart sendmail: 691 cd /etc/mail/; make restart 692 693 A sendmail patch is coming, at which time this file will be 694 updated. 695 69620150604: 697 Generation of legacy formatted entries have been disabled by default 698 in pwd_mkdb(8), as all base system consumers of the legacy formatted 699 entries were converted to use the new format by default when the new, 700 machine independent format have been added and supported since FreeBSD 701 5.x. 702 703 Please see the pwd_mkdb(8) manual page for further details. 704 70520150525: 706 Clang and llvm have been upgraded to 3.6.1 release. Please see the 707 20141231 entry below for information about prerequisites and upgrading, 708 if you are not already using 3.5.0 or higher. 709 71020150521: 711 TI platform code switched to using vendor DTS files and this update 712 may break existing systems running on Beaglebone, Beaglebone Black, 713 and Pandaboard: 714 715 - dtb files should be regenerated/reinstalled. Filenames are the 716 same but content is different now 717 - GPIO addressing was changed, now each GPIO bank (32 pins per bank) 718 has its own /dev/gpiocX device, e.g. pin 121 on /dev/gpioc0 in old 719 addressing scheme is now pin 25 on /dev/gpioc3. 720 - Pandaboard: /etc/ttys should be updated, serial console device is 721 now /dev/ttyu2, not /dev/ttyu0 722 72320150501: 724 soelim(1) from gnu/usr.bin/groff has been replaced by usr.bin/soelim. 725 If you need the GNU extension from groff soelim(1), install groff 726 from package: pkg install groff, or via ports: textproc/groff. 727 72820150423: 729 chmod, chflags, chown and chgrp now affect symlinks in -R mode as 730 defined in symlink(7); previously symlinks were silently ignored. 731 73220150415: 733 The const qualifier has been removed from iconv(3) to comply with 734 POSIX. The ports tree is aware of this from r384038 onwards. 735 73620150416: 737 Libraries specified by LIBADD in Makefiles must have a corresponding 738 DPADD_<lib> variable to ensure correct dependencies. This is now 739 enforced in src.libnames.mk. 740 74120150324: 742 From legacy ata(4) driver was removed support for SATA controllers 743 supported by more functional drivers ahci(4), siis(4) and mvs(4). 744 Kernel modules ataahci and ataadaptec were removed completely, 745 replaced by ahci and mvs modules respectively. 746 74720150315: 748 Clang, llvm and lldb have been upgraded to 3.6.0 release. Please see 749 the 20141231 entry below for information about prerequisites and 750 upgrading, if you are not already using 3.5.0 or higher. 751 75220150307: 753 The 32-bit PowerPC kernel has been changed to a position-independent 754 executable. This can only be booted with a version of loader(8) 755 newer than January 31, 2015, so make sure to update both world and 756 kernel before rebooting. 757 75820150217: 759 If you are running a -CURRENT kernel since r273872 (Oct 30th, 2014), 760 but before r278950, the RNG was not seeded properly. Immediately 761 upgrade the kernel to r278950 or later and regenerate any keys (e.g. 762 ssh keys or openssl keys) that were generated w/ a kernel from that 763 range. This does not affect programs that directly used /dev/random 764 or /dev/urandom. All userland uses of arc4random(3) are affected. 765 76620150210: 767 The autofs(4) ABI was changed in order to restore binary compatibility 768 with 10.1-RELEASE. The automountd(8) daemon needs to be rebuilt to work 769 with the new kernel. 770 77120150131: 772 The powerpc64 kernel has been changed to a position-independent 773 executable. This can only be booted with a new version of loader(8), 774 so make sure to update both world and kernel before rebooting. 775 77620150118: 777 Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix 778 only release, no new features have been added. Please see the 20141231 779 entry below for information about prerequisites and upgrading, if you 780 are not already using 3.5.0. 781 78220150107: 783 ELF tools addr2line, elfcopy (strip), nm, size, and strings are now 784 taken from the ELF Tool Chain project rather than GNU binutils. They 785 should be drop-in replacements, with the addition of arm64 support. 786 The WITHOUT_ELFTOOLCHAIN_TOOLS= knob may be used to obtain the 787 binutils tools, if necessary. See 20150805 for updated information. 788 78920150105: 790 The default Unbound configuration now enables remote control 791 using a local socket. Users who have already enabled the 792 local_unbound service should regenerate their configuration 793 by running "service local_unbound setup" as root. 794 79520150102: 796 The GNU texinfo and GNU info pages have been removed. 797 To be able to view GNU info pages please install texinfo from ports. 798 79920141231: 800 Clang, llvm and lldb have been upgraded to 3.5.0 release. 801 802 As of this release, a prerequisite for building clang, llvm and lldb is 803 a C++11 capable compiler and C++11 standard library. This means that to 804 be able to successfully build the cross-tools stage of buildworld, with 805 clang as the bootstrap compiler, your system compiler or cross compiler 806 should either be clang 3.3 or later, or gcc 4.8 or later, and your 807 system C++ library should be libc++, or libdstdc++ from gcc 4.8 or 808 later. 809 810 On any standard FreeBSD 10.x or 11.x installation, where clang and 811 libc++ are on by default (that is, on x86 or arm), this should work out 812 of the box. 813 814 On 9.x installations where clang is enabled by default, e.g. on x86 and 815 powerpc, libc++ will not be enabled by default, so libc++ should be 816 built (with clang) and installed first. If both clang and libc++ are 817 missing, build clang first, then use it to build libc++. 818 819 On 8.x and earlier installations, upgrade to 9.x first, and then follow 820 the instructions for 9.x above. 821 822 Sparc64 and mips users are unaffected, as they still use gcc 4.2.1 by 823 default, and do not build clang. 824 825 Many embedded systems are resource constrained, and will not be able to 826 build clang in a reasonable time, or in some cases at all. In those 827 cases, cross building bootable systems on amd64 is a workaround. 828 829 This new version of clang introduces a number of new warnings, of which 830 the following are most likely to appear: 831 832 -Wabsolute-value 833 834 This warns in two cases, for both C and C++: 835 * When the code is trying to take the absolute value of an unsigned 836 quantity, which is effectively a no-op, and almost never what was 837 intended. The code should be fixed, if at all possible. If you are 838 sure that the unsigned quantity can be safely cast to signed, without 839 loss of information or undefined behavior, you can add an explicit 840 cast, or disable the warning. 841 842 * When the code is trying to take an absolute value, but the called 843 abs() variant is for the wrong type, which can lead to truncation. 844 If you want to disable the warning instead of fixing the code, please 845 make sure that truncation will not occur, or it might lead to unwanted 846 side-effects. 847 848 -Wtautological-undefined-compare and 849 -Wundefined-bool-conversion 850 851 These warn when C++ code is trying to compare 'this' against NULL, while 852 'this' should never be NULL in well-defined C++ code. However, there is 853 some legacy (pre C++11) code out there, which actively abuses this 854 feature, which was less strictly defined in previous C++ versions. 855 856 Squid and openjdk do this, for example. The warning can be turned off 857 for C++98 and earlier, but compiling the code in C++11 mode might result 858 in unexpected behavior; for example, the parts of the program that are 859 unreachable could be optimized away. 860 86120141222: 862 The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) 863 kernel sources have been removed. The .h files remain, since some 864 utilities include them. This will need to be fixed later. 865 If "mount -t oldnfs ..." is attempted, it will fail. 866 If the "-o" option on mountd(8), nfsd(8) or nfsstat(1) is used, 867 the utilities will report errors. 868 86920141121: 870 The handling of LOCAL_LIB_DIRS has been altered to skip addition of 871 directories to top level SUBDIR variable when their parent 872 directory is included in LOCAL_DIRS. Users with build systems with 873 such hierarchies and without SUBDIR entries in the parent 874 directory Makefiles should add them or add the directories to 875 LOCAL_DIRS. 876 87720141109: 878 faith(4) and faithd(8) have been removed from the base system. Faith 879 has been obsolete for a very long time. 880 88120141104: 882 vt(4), the new console driver, is enabled by default. It brings 883 support for Unicode and double-width characters, as well as 884 support for UEFI and integration with the KMS kernel video 885 drivers. 886 887 You may need to update your console settings in /etc/rc.conf, 888 most probably the keymap. During boot, /etc/rc.d/syscons will 889 indicate what you need to do. 890 891 vt(4) still has issues and lacks some features compared to 892 syscons(4). See the wiki for up-to-date information: 893 https://wiki.freebsd.org/Newcons 894 895 If you want to keep using syscons(4), you can do so by adding 896 the following line to /boot/loader.conf: 897 kern.vty=sc 898 89920141102: 900 pjdfstest has been integrated into kyua as an opt-in test suite. 901 Please see share/doc/pjdfstest/README for more details on how to 902 execute it. 903 90420141009: 905 gperf has been removed from the base system for architectures 906 that use clang. Ports that require gperf will obtain it from the 907 devel/gperf port. 908 90920140923: 910 pjdfstest has been moved from tools/regression/pjdfstest to 911 contrib/pjdfstest . 912 91320140922: 914 At svn r271982, The default linux compat kernel ABI has been adjusted 915 to 2.6.18 in support of the linux-c6 compat ports infrastructure 916 update. If you wish to continue using the linux-f10 compat ports, 917 add compat.linux.osrelease=2.6.16 to your local sysctl.conf. Users are 918 encouraged to update their linux-compat packages to linux-c6 during 919 their next update cycle. 920 92120140729: 922 The ofwfb driver, used to provide a graphics console on PowerPC when 923 using vt(4), no longer allows mmap() of all physical memory. This 924 will prevent Xorg on PowerPC with some ATI graphics cards from 925 initializing properly unless x11-servers/xorg-server is updated to 926 1.12.4_8 or newer. 927 92820140723: 929 The xdev targets have been converted to using TARGET and 930 TARGET_ARCH instead of XDEV and XDEV_ARCH. 931 93220140719: 933 The default unbound configuration has been modified to address 934 issues with reverse lookups on networks that use private 935 address ranges. If you use the local_unbound service, run 936 "service local_unbound setup" as root to regenerate your 937 configuration, then "service local_unbound reload" to load the 938 new configuration. 939 94020140709: 941 The GNU texinfo and GNU info pages are not built and installed 942 anymore, WITH_INFO knob has been added to allow to built and install 943 them again. 944 UPDATE: see 20150102 entry on texinfo's removal 945 94620140708: 947 The GNU readline library is now an INTERNALLIB - that is, it is 948 statically linked into consumers (GDB and variants) in the base 949 system, and the shared library is no longer installed. The 950 devel/readline port is available for third party software that 951 requires readline. 952 95320140702: 954 The Itanium architecture (ia64) has been removed from the list of 955 known architectures. This is the first step in the removal of the 956 architecture. 957 95820140701: 959 Commit r268115 has added NFSv4.1 server support, merged from 960 projects/nfsv4.1-server. Since this includes changes to the 961 internal interfaces between the NFS related modules, a full 962 build of the kernel and modules will be necessary. 963 __FreeBSD_version has been bumped. 964 96520140629: 966 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 967 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 968 which differs from the behaviour controlled by this knob.) 969 97020140619: 971 Maximal length of the serial number in CTL was increased from 16 to 972 64 chars, that breaks ABI. All CTL-related tools, such as ctladm 973 and ctld, need to be rebuilt to work with a new kernel. 974 97520140606: 976 The libatf-c and libatf-c++ major versions were downgraded to 0 and 977 1 respectively to match the upstream numbers. They were out of 978 sync because, when they were originally added to FreeBSD, the 979 upstream versions were not respected. These libraries are private 980 and not yet built by default, so renumbering them should be a 981 non-issue. However, unclean source trees will yield broken test 982 programs once the operator executes "make delete-old-libs" after a 983 "make installworld". 984 985 Additionally, the atf-sh binary was made private by moving it into 986 /usr/libexec/. Already-built shell test programs will keep the 987 path to the old binary so they will break after "make delete-old" 988 is run. 989 990 If you are using WITH_TESTS=yes (not the default), wipe the object 991 tree and rebuild from scratch to prevent spurious test failures. 992 This is only needed once: the misnumbered libraries and misplaced 993 binaries have been added to OptionalObsoleteFiles.inc so they will 994 be removed during a clean upgrade. 995 99620140512: 997 Clang and llvm have been upgraded to 3.4.1 release. 998 99920140508: 1000 We bogusly installed src.opts.mk in /usr/share/mk. This file should 1001 be removed to avoid issues in the future (and has been added to 1002 ObsoleteFiles.inc). 1003 100420140505: 1005 /etc/src.conf now affects only builds of the FreeBSD src tree. In the 1006 past, it affected all builds that used the bsd.*.mk files. The old 1007 behavior was a bug, but people may have relied upon it. To get this 1008 behavior back, you can .include /etc/src.conf from /etc/make.conf 1009 (which is still global and isn't changed). This also changes the 1010 behavior of incremental builds inside the tree of individual 1011 directories. Set MAKESYSPATH to ".../share/mk" to do that. 1012 Although this has survived make universe and some upgrade scenarios, 1013 other upgrade scenarios may have broken. At least one form of 1014 temporary breakage was fixed with MAKESYSPATH settings for buildworld 1015 as well... In cases where MAKESYSPATH isn't working with this 1016 setting, you'll need to set it to the full path to your tree. 1017 1018 One side effect of all this cleaning up is that bsd.compiler.mk 1019 is no longer implicitly included by bsd.own.mk. If you wish to 1020 use COMPILER_TYPE, you must now explicitly include bsd.compiler.mk 1021 as well. 1022 102320140430: 1024 The lindev device has been removed since /dev/full has been made a 1025 standard device. __FreeBSD_version has been bumped. 1026 102720140424: 1028 The knob WITHOUT_VI was added to the base system, which controls 1029 building ex(1), vi(1), etc. Older releases of FreeBSD required ex(1) 1030 in order to reorder files share/termcap and didn't build ex(1) as a 1031 build tool, so building/installing with WITH_VI is highly advised for 1032 build hosts for older releases. 1033 1034 This issue has been fixed in stable/9 and stable/10 in r277022 and 1035 r276991, respectively. 1036 103720140418: 1038 The YES_HESIOD knob has been removed. It has been obsolete for 1039 a decade. Please move to using WITH_HESIOD instead or your builds 1040 will silently lack HESIOD. 1041 104220140405: 1043 The uart(4) driver has been changed with respect to its handling 1044 of the low-level console. Previously the uart(4) driver prevented 1045 any process from changing the baudrate or the CLOCAL and HUPCL 1046 control flags. By removing the restrictions, operators can make 1047 changes to the serial console port without having to reboot. 1048 However, when getty(8) is started on the serial device that is 1049 associated with the low-level console, a misconfigured terminal 1050 line in /etc/ttys will now have a real impact. 1051 Before upgrading the kernel, make sure that /etc/ttys has the 1052 serial console device configured as 3wire without baudrate to 1053 preserve the previous behaviour. E.g: 1054 ttyu0 "/usr/libexec/getty 3wire" vt100 on secure 1055 105620140306: 1057 Support for libwrap (TCP wrappers) in rpcbind was disabled by default 1058 to improve performance. To re-enable it, if needed, run rpcbind 1059 with command line option -W. 1060 106120140226: 1062 Switched back to the GPL dtc compiler due to updates in the upstream 1063 dts files not being supported by the BSDL dtc compiler. You will need 1064 to rebuild your kernel toolchain to pick up the new compiler. Core dumps 1065 may result while building dtb files during a kernel build if you fail 1066 to do so. Set WITHOUT_GPL_DTC if you require the BSDL compiler. 1067 106820140216: 1069 Clang and llvm have been upgraded to 3.4 release. 1070 107120140216: 1072 The nve(4) driver has been removed. Please use the nfe(4) driver 1073 for NVIDIA nForce MCP Ethernet adapters instead. 1074 107520140212: 1076 An ABI incompatibility crept into the libc++ 3.4 import in r261283. 1077 This could cause certain C++ applications using shared libraries built 1078 against the previous version of libc++ to crash. The incompatibility 1079 has now been fixed, but any C++ applications or shared libraries built 1080 between r261283 and r261801 should be recompiled. 1081 108220140204: 1083 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 1084 capability mode support. Please note that enabling the feature in 1085 kernel is still highly recommended. 1086 108720140131: 1088 OpenSSH is now built with sandbox support, and will use sandbox as 1089 the default privilege separation method. This requires Capsicum 1090 capability mode support in kernel. 1091 109220140128: 1093 The libelf and libdwarf libraries have been updated to newer 1094 versions from upstream. Shared library version numbers for 1095 these two libraries were bumped. Any ports or binaries 1096 requiring these two libraries should be recompiled. 1097 __FreeBSD_version is bumped to 1100006. 1098 109920140110: 1100 If a Makefile in a tests/ directory was auto-generating a Kyuafile 1101 instead of providing an explicit one, this would prevent such 1102 Makefile from providing its own Kyuafile in the future during 1103 NO_CLEAN builds. This has been fixed in the Makefiles but manual 1104 intervention is needed to clean an objdir if you use NO_CLEAN: 1105 # find /usr/obj -name Kyuafile | xargs rm -f 1106 110720131213: 1108 The behavior of gss_pseudo_random() for the krb5 mechanism 1109 has changed, for applications requesting a longer random string 1110 than produced by the underlying enctype's pseudo-random() function. 1111 In particular, the random string produced from a session key of 1112 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 1113 be different at the 17th octet and later, after this change. 1114 The counter used in the PRF+ construction is now encoded as a 1115 big-endian integer in accordance with RFC 4402. 1116 __FreeBSD_version is bumped to 1100004. 1117 111820131108: 1119 The WITHOUT_ATF build knob has been removed and its functionality 1120 has been subsumed into the more generic WITHOUT_TESTS. If you were 1121 using the former to disable the build of the ATF libraries, you 1122 should change your settings to use the latter. 1123 112420131025: 1125 The default version of mtree is nmtree which is obtained from 1126 NetBSD. The output is generally the same, but may vary 1127 slightly. If you found you need identical output adding 1128 "-F freebsd9" to the command line should do the trick. For the 1129 time being, the old mtree is available as fmtree. 1130 113120131014: 1132 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 1133 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 1134 1.1.4_8 and verify bsdyml not linked in, before running "make 1135 delete-old-libs": 1136 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 1137 or 1138 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 1139 114020131010: 1141 The stable/10 branch has been created in subversion from head 1142 revision r256279. 1143 114420131010: 1145 The rc.d/jail script has been updated to support jail(8) 1146 configuration file. The "jail_<jname>_*" rc.conf(5) variables 1147 for per-jail configuration are automatically converted to 1148 /var/run/jail.<jname>.conf before the jail(8) utility is invoked. 1149 This is transparently backward compatible. See below about some 1150 incompatibilities and rc.conf(5) manual page for more details. 1151 1152 These variables are now deprecated in favor of jail(8) configuration 1153 file. One can use "rc.d/jail config <jname>" command to generate 1154 a jail(8) configuration file in /var/run/jail.<jname>.conf without 1155 running the jail(8) utility. The default pathname of the 1156 configuration file is /etc/jail.conf and can be specified by 1157 using $jail_conf or $jail_<jname>_conf variables. 1158 1159 Please note that jail_devfs_ruleset accepts an integer at 1160 this moment. Please consider to rewrite the ruleset name 1161 with an integer. 1162 116320130930: 1164 BIND has been removed from the base system. If all you need 1165 is a local resolver, simply enable and start the local_unbound 1166 service instead. Otherwise, several versions of BIND are 1167 available in the ports tree. The dns/bind99 port is one example. 1168 1169 With this change, nslookup(1) and dig(1) are no longer in the base 1170 system. Users should instead use host(1) and drill(1) which are 1171 in the base system. Alternatively, nslookup and dig can 1172 be obtained by installing the dns/bind-tools port. 1173 117420130916: 1175 With the addition of unbound(8), a new unbound user is now 1176 required during installworld. "mergemaster -p" can be used to 1177 add the user prior to installworld, as documented in the handbook. 1178 117920130911: 1180 OpenSSH is now built with DNSSEC support, and will by default 1181 silently trust signed SSHFP records. This can be controlled with 1182 the VerifyHostKeyDNS client configuration setting. DNSSEC support 1183 can be disabled entirely with the WITHOUT_LDNS option in src.conf. 1184 118520130906: 1186 The GNU Compiler Collection and C++ standard library (libstdc++) 1187 are no longer built by default on platforms where clang is the system 1188 compiler. You can enable them with the WITH_GCC and WITH_GNUCXX 1189 options in src.conf. 1190 119120130905: 1192 The PROCDESC kernel option is now part of the GENERIC kernel 1193 configuration and is required for the rwhod(8) to work. 1194 If you are using custom kernel configuration, you should include 1195 'options PROCDESC'. 1196 119720130905: 1198 The API and ABI related to the Capsicum framework was modified 1199 in backward incompatible way. The userland libraries and programs 1200 have to be recompiled to work with the new kernel. This includes the 1201 following libraries and programs, but the whole buildworld is 1202 advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl, 1203 kdump, procstat, rwho, rwhod, uniq. 1204 120520130903: 1206 AES-NI intrinsic support has been added to gcc. The AES-NI module 1207 has been updated to use this support. A new gcc is required to build 1208 the aesni module on both i386 and amd64. 1209 121020130821: 1211 The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. 1212 Thus "device padlock_rng" and "device rdrand_rng" should be 1213 used instead of "options PADLOCK_RNG" & "options RDRAND_RNG". 1214 121520130813: 1216 WITH_ICONV has been split into two feature sets. WITH_ICONV now 1217 enables just the iconv* functionality and is now on by default. 1218 WITH_LIBICONV_COMPAT enables the libiconv api and link time 1219 compatibility. Set WITHOUT_ICONV to build the old way. 1220 If you have been using WITH_ICONV before, you will very likely 1221 need to turn on WITH_LIBICONV_COMPAT. 1222 122320130806: 1224 INVARIANTS option now enables DEBUG for code with OpenSolaris and 1225 Illumos origin, including ZFS. If you have INVARIANTS in your 1226 kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG 1227 explicitly. 1228 DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS) 1229 locks if WITNESS option was set. Because that generated a lot of 1230 witness(9) reports and all of them were believed to be false 1231 positives, this is no longer done. New option OPENSOLARIS_WITNESS 1232 can be used to achieve the previous behavior. 1233 123420130806: 1235 Timer values in IPv6 data structures now use time_uptime instead 1236 of time_second. Although this is not a user-visible functional 1237 change, userland utilities which directly use them---ndp(8), 1238 rtadvd(8), and rtsold(8) in the base system---need to be updated 1239 to r253970 or later. 1240 124120130802: 1242 find -delete can now delete the pathnames given as arguments, 1243 instead of only files found below them or if the pathname did 1244 not contain any slashes. Formerly, the following error message 1245 would result: 1246 1247 find: -delete: <path>: relative path potentially not safe 1248 1249 Deleting the pathnames given as arguments can be prevented 1250 without error messages using -mindepth 1 or by changing 1251 directory and passing "." as argument to find. This works in the 1252 old as well as the new version of find. 1253 125420130726: 1255 Behavior of devfs rules path matching has been changed. 1256 Pattern is now always matched against fully qualified devfs 1257 path and slash characters must be explicitly matched by 1258 slashes in pattern (FNM_PATHNAME). Rulesets involving devfs 1259 subdirectories must be reviewed. 1260 126120130716: 1262 The default ARM ABI has changed to the ARM EABI. The old ABI is 1263 incompatible with the ARM EABI and all programs and modules will 1264 need to be rebuilt to work with a new kernel. 1265 1266 To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set. 1267 1268 NOTE: Support for the old ABI will be removed in the future and 1269 users are advised to upgrade. 1270 127120130709: 1272 pkg_install has been disconnected from the build if you really need it 1273 you should add WITH_PKGTOOLS in your src.conf(5). 1274 127520130709: 1276 Most of network statistics structures were changed to be able 1277 keep 64-bits counters. Thus all tools, that work with networking 1278 statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.) 1279 128020130618: 1281 Fix a bug that allowed a tracing process (e.g. gdb) to write 1282 to a memory-mapped file in the traced process's address space 1283 even if neither the traced process nor the tracing process had 1284 write access to that file. 1285 128620130615: 1287 CVS has been removed from the base system. An exact copy 1288 of the code is available from the devel/cvs port. 1289 129020130613: 1291 Some people report the following error after the switch to bmake: 1292 1293 make: illegal option -- J 1294 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable] 1295 ... 1296 *** [buildworld] Error code 2 1297 1298 this likely due to an old instance of make in 1299 ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}) 1300 which src/Makefile will use that blindly, if it exists, so if 1301 you see the above error: 1302 1303 rm -rf `make -V MAKEPATH` 1304 1305 should resolve it. 1306 130720130516: 1308 Use bmake by default. 1309 Whereas before one could choose to build with bmake via 1310 -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old 1311 make. The goal is to remove these knobs for 10-RELEASE. 1312 1313 It is worth noting that bmake (like gmake) treats the command 1314 line as the unit of failure, rather than statements within the 1315 command line. Thus '(cd some/where && dosomething)' is safer 1316 than 'cd some/where; dosomething'. The '()' allows consistent 1317 behavior in parallel build. 1318 131920130429: 1320 Fix a bug that allows NFS clients to issue READDIR on files. 1321 132220130426: 1323 The WITHOUT_IDEA option has been removed because 1324 the IDEA patent expired. 1325 132620130426: 1327 The sysctl which controls TRIM support under ZFS has been renamed 1328 from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been 1329 enabled by default. 1330 133120130425: 1332 The mergemaster command now uses the default MAKEOBJDIRPREFIX 1333 rather than creating it's own in the temporary directory in 1334 order allow access to bootstrapped versions of tools such as 1335 install and mtree. When upgrading from version of FreeBSD where 1336 the install command does not support -l, you will need to 1337 install a new mergemaster command if mergemaster -p is required. 1338 This can be accomplished with the command (cd src/usr.sbin/mergemaster 1339 && make install). 1340 134120130404: 1342 Legacy ATA stack, disabled and replaced by new CAM-based one since 1343 FreeBSD 9.0, completely removed from the sources. Kernel modules 1344 atadisk and atapi*, user-level tools atacontrol and burncd are 1345 removed. Kernel option `options ATA_CAM` is now permanently enabled 1346 and removed. 1347 134820130319: 1349 SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2) 1350 and socketpair(2). Software, in particular Kerberos, may 1351 automatically detect and use these during building. The resulting 1352 binaries will not work on older kernels. 1353 135420130308: 1355 CTL_DISABLE has also been added to the sparc64 GENERIC (for further 1356 information, see the respective 20130304 entry). 1357 135820130304: 1359 Recent commits to callout(9) changed the size of struct callout, 1360 so the KBI is probably heavily disturbed. Also, some functions 1361 in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced 1362 by macros. Every kernel module using it won't load, so rebuild 1363 is requested. 1364 1365 The ctl device has been re-enabled in GENERIC for i386 and amd64, 1366 but does not initialize by default (because of the new CTL_DISABLE 1367 option) to save memory. To re-enable it, remove the CTL_DISABLE 1368 option from the kernel config file or set kern.cam.ctl.disable=0 1369 in /boot/loader.conf. 1370 137120130301: 1372 The ctl device has been disabled in GENERIC for i386 and amd64. 1373 This was done due to the extra memory being allocated at system 1374 initialisation time by the ctl driver which was only used if 1375 a CAM target device was created. This makes a FreeBSD system 1376 unusable on 128MB or less of RAM. 1377 137820130208: 1379 A new compression method (lz4) has been merged to -HEAD. Please 1380 refer to zpool-features(7) for more information. 1381 1382 Please refer to the "ZFS notes" section of this file for information 1383 on upgrading boot ZFS pools. 1384 138520130129: 1386 A BSD-licensed patch(1) variant has been added and is installed 1387 as bsdpatch, being the GNU version the default patch. 1388 To inverse the logic and use the BSD-licensed one as default, 1389 while having the GNU version installed as gnupatch, rebuild 1390 and install world with the WITH_BSD_PATCH knob set. 1391 139220130121: 1393 Due to the use of the new -l option to install(1) during build 1394 and install, you must take care not to directly set the INSTALL 1395 make variable in your /etc/make.conf, /etc/src.conf, or on the 1396 command line. If you wish to use the -C flag for all installs 1397 you may be able to add INSTALL+=-C to /etc/make.conf or 1398 /etc/src.conf. 1399 140020130118: 1401 The install(1) option -M has changed meaning and now takes an 1402 argument that is a file or path to append logs to. In the 1403 unlikely event that -M was the last option on the command line 1404 and the command line contained at least two files and a target 1405 directory the first file will have logs appended to it. The -M 1406 option served little practical purpose in the last decade so its 1407 use is expected to be extremely rare. 1408 140920121223: 1410 After switching to Clang as the default compiler some users of ZFS 1411 on i386 systems started to experience stack overflow kernel panics. 1412 Please consider using 'options KSTACK_PAGES=4' in such configurations. 1413 141420121222: 1415 GEOM_LABEL now mangles label names read from file system metadata. 1416 Mangling affect labels containing spaces, non-printable characters, 1417 '%' or '"'. Device names in /etc/fstab and other places may need to 1418 be updated. 1419 142020121217: 1421 By default, only the 10 most recent kernel dumps will be saved. To 1422 restore the previous behaviour (no limit on the number of kernel dumps 1423 stored in the dump directory) add the following line to /etc/rc.conf: 1424 1425 savecore_flags="" 1426 142720121201: 1428 With the addition of auditdistd(8), a new auditdistd user is now 1429 required during installworld. "mergemaster -p" can be used to 1430 add the user prior to installworld, as documented in the handbook. 1431 143220121117: 1433 The sin6_scope_id member variable in struct sockaddr_in6 is now 1434 filled by the kernel before passing the structure to the userland via 1435 sysctl or routing socket. This means the KAME-specific embedded scope 1436 id in sin6_addr.s6_addr[2] is always cleared in userland application. 1437 This behavior can be controlled by net.inet6.ip6.deembed_scopeid. 1438 __FreeBSD_version is bumped to 1000025. 1439 144020121105: 1441 On i386 and amd64 systems WITH_CLANG_IS_CC is now the default. 1442 This means that the world and kernel will be compiled with clang 1443 and that clang will be installed as /usr/bin/cc, /usr/bin/c++, 1444 and /usr/bin/cpp. To disable this behavior and revert to building 1445 with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions 1446 of current may need to bootstrap WITHOUT_CLANG first if the clang 1447 build fails (its compatibility window doesn't extend to the 9 stable 1448 branch point). 1449 145020121102: 1451 The IPFIREWALL_FORWARD kernel option has been removed. Its 1452 functionality now turned on by default. 1453 145420121023: 1455 The ZERO_COPY_SOCKET kernel option has been removed and 1456 split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP. 1457 NB: SOCKET_SEND_COW uses the VM page based copy-on-write 1458 mechanism which is not safe and may result in kernel crashes. 1459 NB: The SOCKET_RECV_PFLIP mechanism is useless as no current 1460 driver supports disposeable external page sized mbuf storage. 1461 Proper replacements for both zero-copy mechanisms are under 1462 consideration and will eventually lead to complete removal 1463 of the two kernel options. 1464 146520121023: 1466 The IPv4 network stack has been converted to network byte 1467 order. The following modules need to be recompiled together 1468 with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4), 1469 pf(4), ipfw(4), ng_ipfw(4), stf(4). 1470 147120121022: 1472 Support for non-MPSAFE filesystems was removed from VFS. The 1473 VFS_VERSION was bumped, all filesystem modules shall be 1474 recompiled. 1475 147620121018: 1477 All the non-MPSAFE filesystems have been disconnected from 1478 the build. The full list includes: codafs, hpfs, ntfs, nwfs, 1479 portalfs, smbfs, xfs. 1480 148120121016: 1482 The interface cloning API and ABI has changed. The following 1483 modules need to be recompiled together with kernel: 1484 ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4), 1485 vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4), 1486 faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4). 1487 148820121015: 1489 The sdhci driver was split in two parts: sdhci (generic SD Host 1490 Controller logic) and sdhci_pci (actual hardware driver). 1491 No kernel config modifications are required, but if you 1492 load sdhc as a module you must switch to sdhci_pci instead. 1493 149420121014: 1495 Import the FUSE kernel and userland support into base system. 1496 149720121013: 1498 The GNU sort(1) program has been removed since the BSD-licensed 1499 sort(1) has been the default for quite some time and no serious 1500 problems have been reported. The corresponding WITH_GNU_SORT 1501 knob has also gone. 1502 150320121006: 1504 The pfil(9) API/ABI for AF_INET family has been changed. Packet 1505 filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled 1506 with new kernel. 1507 150820121001: 1509 The net80211(4) ABI has been changed to allow for improved driver 1510 PS-POLL and power-save support. All wireless drivers need to be 1511 recompiled to work with the new kernel. 1512 151320120913: 1514 The random(4) support for the VIA hardware random number 1515 generator (`PADLOCK') is no longer enabled unconditionally. 1516 Add the padlock_rng device in the custom kernel config if 1517 needed. The GENERIC kernels on i386 and amd64 do include the 1518 device, so the change only affects the custom kernel 1519 configurations. 1520 152120120908: 1522 The pf(4) packet filter ABI has been changed. pfctl(8) and 1523 snmp_pf module need to be recompiled to work with new kernel. 1524 152520120828: 1526 A new ZFS feature flag "com.delphix:empty_bpobj" has been merged 1527 to -HEAD. Pools that have empty_bpobj in active state can not be 1528 imported read-write with ZFS implementations that do not support 1529 this feature. For more information read the zpool-features(5) 1530 manual page. 1531 153220120727: 1533 The sparc64 ZFS loader has been changed to no longer try to auto- 1534 detect ZFS providers based on diskN aliases but now requires these 1535 to be explicitly listed in the OFW boot-device environment variable. 1536 153720120712: 1538 The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring 1539 libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are 1540 configuration changes. Make sure to merge /etc/ssl/openssl.cnf. 1541 154220120712: 1543 The following sysctls and tunables have been renamed for consistency 1544 with other variables: 1545 kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered 1546 kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered 1547 154820120628: 1549 The sort utility has been replaced with BSD sort. For now, GNU sort 1550 is also available as "gnusort" or the default can be set back to 1551 GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be 1552 installed as "bsdsort". 1553 155420120611: 1555 A new version of ZFS (pool version 5000) has been merged to -HEAD. 1556 Starting with this version the old system of ZFS pool versioning 1557 is superseded by "feature flags". This concept enables forward 1558 compatibility against certain future changes in functionality of ZFS 1559 pools. The first read-only compatible "feature flag" for ZFS pools 1560 is named "com.delphix:async_destroy". For more information 1561 read the new zpool-features(5) manual page. 1562 Please refer to the "ZFS notes" section of this file for information 1563 on upgrading boot ZFS pools. 1564 156520120417: 1566 The malloc(3) implementation embedded in libc now uses sources imported 1567 as contrib/jemalloc. The most disruptive API change is to 1568 /etc/malloc.conf. If your system has an old-style /etc/malloc.conf, 1569 delete it prior to installworld, and optionally re-create it using the 1570 new format after rebooting. See malloc.conf(5) for details 1571 (specifically the TUNING section and the "opt.*" entries in the MALLCTL 1572 NAMESPACE section). 1573 157420120328: 1575 Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb 1576 is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is 1577 now spelled mips. This is to aid compatibility with third-party 1578 software that expects this naming scheme in uname(3). Little-endian 1579 settings are unchanged. If you are updating a big-endian mips64 machine 1580 from before this change, you may need to set MACHINE_ARCH=mips64 in 1581 your environment before the new build system will recognize your machine. 1582 158320120306: 1584 Disable by default the option VFS_ALLOW_NONMPSAFE for all supported 1585 platforms. 1586 158720120229: 1588 Now unix domain sockets behave "as expected" on nullfs(5). Previously 1589 nullfs(5) did not pass through all behaviours to the underlying layer, 1590 as a result if we bound to a socket on the lower layer we could connect 1591 only to the lower path; if we bound to the upper layer we could connect 1592 only to the upper path. The new behavior is one can connect to both the 1593 lower and the upper paths regardless what layer path one binds to. 1594 159520120211: 1596 The getifaddrs upgrade path broken with 20111215 has been restored. 1597 If you have upgraded in between 20111215 and 20120209 you need to 1598 recompile libc again with your kernel. You still need to recompile 1599 world to be able to configure CARP but this restriction already 1600 comes from 20111215. 1601 160220120114: 1603 The set_rcvar() function has been removed from /etc/rc.subr. All 1604 base and ports rc.d scripts have been updated, so if you have a 1605 port installed with a script in /usr/local/etc/rc.d you can either 1606 hand-edit the rcvar= line, or reinstall the port. 1607 1608 An easy way to handle the mass-update of /etc/rc.d: 1609 rm /etc/rc.d/* && mergemaster -i 1610 161120120109: 1612 panic(9) now stops other CPUs in the SMP systems, disables interrupts 1613 on the current CPU and prevents other threads from running. 1614 This behavior can be reverted using the kern.stop_scheduler_on_panic 1615 tunable/sysctl. 1616 The new behavior can be incompatible with kern.sync_on_panic. 1617 161820111215: 1619 The carp(4) facility has been changed significantly. Configuration 1620 of the CARP protocol via ifconfig(8) has changed, as well as format 1621 of CARP events submitted to devd(8) has changed. See manual pages 1622 for more information. The arpbalance feature of carp(4) is currently 1623 not supported anymore. 1624 1625 Size of struct in_aliasreq, struct in6_aliasreq has changed. User 1626 utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), 1627 need to be recompiled. 1628 162920111122: 1630 The acpi_wmi(4) status device /dev/wmistat has been renamed to 1631 /dev/wmistat0. 1632 163320111108: 1634 The option VFS_ALLOW_NONMPSAFE option has been added in order to 1635 explicitely support non-MPSAFE filesystems. 1636 It is on by default for all supported platform at this present 1637 time. 1638 163920111101: 1640 The broken amd(4) driver has been replaced with esp(4) in the amd64, 1641 i386 and pc98 GENERIC kernel configuration files. 1642 164320110930: 1644 sysinstall has been removed 1645 164620110923: 1647 The stable/9 branch created in subversion. This corresponds to the 1648 RELENG_9 branch in CVS. 1649 1650COMMON ITEMS: 1651 1652 General Notes 1653 ------------- 1654 Avoid using make -j when upgrading. While generally safe, there are 1655 sometimes problems using -j to upgrade. If your upgrade fails with 1656 -j, please try again without -j. From time to time in the past there 1657 have been problems using -j with buildworld and/or installworld. This 1658 is especially true when upgrading between "distant" versions (eg one 1659 that cross a major release boundary or several minor releases, or when 1660 several months have passed on the -current branch). 1661 1662 Sometimes, obscure build problems are the result of environment 1663 poisoning. This can happen because the make utility reads its 1664 environment when searching for values for global variables. To run 1665 your build attempts in an "environmental clean room", prefix all make 1666 commands with 'env -i '. See the env(1) manual page for more details. 1667 1668 When upgrading from one major version to another it is generally best to 1669 upgrade to the latest code in the currently installed branch first, then 1670 do an upgrade to the new branch. This is the best-tested upgrade path, 1671 and has the highest probability of being successful. Please try this 1672 approach if you encounter problems with a major version upgrade. Since 1673 the stable 4.x branch point, one has generally been able to upgade from 1674 anywhere in the most recent stable branch to head / current (or even the 1675 last couple of stable branches). See the top of this file when there's 1676 an exception. 1677 1678 When upgrading a live system, having a root shell around before 1679 installing anything can help undo problems. Not having a root shell 1680 around can lead to problems if pam has changed too much from your 1681 starting point to allow continued authentication after the upgrade. 1682 1683 This file should be read as a log of events. When a later event changes 1684 information of a prior event, the prior event should not be deleted. 1685 Instead, a pointer to the entry with the new information should be 1686 placed in the old entry. Readers of this file should also sanity check 1687 older entries before relying on them blindly. Authors of new entries 1688 should write them with this in mind. 1689 1690 ZFS notes 1691 --------- 1692 When upgrading the boot ZFS pool to a new version, always follow 1693 these two steps: 1694 1695 1.) recompile and reinstall the ZFS boot loader and boot block 1696 (this is part of "make buildworld" and "make installworld") 1697 1698 2.) update the ZFS boot block on your boot drive 1699 1700 The following example updates the ZFS boot block on the first 1701 partition (freebsd-boot) of a GPT partitioned drive ada0: 1702 "gpart bootcode -p /boot/gptzfsboot -i 1 ada0" 1703 1704 Non-boot pools do not need these updates. 1705 1706 To build a kernel 1707 ----------------- 1708 If you are updating from a prior version of FreeBSD (even one just 1709 a few days old), you should follow this procedure. It is the most 1710 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1711 1712 make kernel-toolchain 1713 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1714 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1715 1716 To test a kernel once 1717 --------------------- 1718 If you just want to boot a kernel once (because you are not sure 1719 if it works, or if you want to boot a known bad kernel to provide 1720 debugging information) run 1721 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1722 nextboot -k testkernel 1723 1724 To just build a kernel when you know that it won't mess you up 1725 -------------------------------------------------------------- 1726 This assumes you are already running a CURRENT system. Replace 1727 ${arch} with the architecture of your machine (e.g. "i386", 1728 "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc). 1729 1730 cd src/sys/${arch}/conf 1731 config KERNEL_NAME_HERE 1732 cd ../compile/KERNEL_NAME_HERE 1733 make depend 1734 make 1735 make install 1736 1737 If this fails, go to the "To build a kernel" section. 1738 1739 To rebuild everything and install it on the current system. 1740 ----------------------------------------------------------- 1741 # Note: sometimes if you are running current you gotta do more than 1742 # is listed here if you are upgrading from a really old current. 1743 1744 <make sure you have good level 0 dumps> 1745 make buildworld 1746 make kernel KERNCONF=YOUR_KERNEL_HERE 1747 [1] 1748 <reboot in single user> [3] 1749 mergemaster -Fp [5] 1750 make installworld 1751 mergemaster -Fi [4] 1752 make delete-old [6] 1753 <reboot> 1754 1755 To cross-install current onto a separate partition 1756 -------------------------------------------------- 1757 # In this approach we use a separate partition to hold 1758 # current's root, 'usr', and 'var' directories. A partition 1759 # holding "/", "/usr" and "/var" should be about 2GB in 1760 # size. 1761 1762 <make sure you have good level 0 dumps> 1763 <boot into -stable> 1764 make buildworld 1765 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1766 <maybe newfs current's root partition> 1767 <mount current's root partition on directory ${CURRENT_ROOT}> 1768 make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC 1769 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1770 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1771 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1772 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1773 <reboot into current> 1774 <do a "native" rebuild/install as described in the previous section> 1775 <maybe install compatibility libraries from ports/misc/compat*> 1776 <reboot> 1777 1778 1779 To upgrade in-place from stable to current 1780 ---------------------------------------------- 1781 <make sure you have good level 0 dumps> 1782 make buildworld [9] 1783 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1784 [1] 1785 <reboot in single user> [3] 1786 mergemaster -Fp [5] 1787 make installworld 1788 mergemaster -Fi [4] 1789 make delete-old [6] 1790 <reboot> 1791 1792 Make sure that you've read the UPDATING file to understand the 1793 tweaks to various things you need. At this point in the life 1794 cycle of current, things change often and you are on your own 1795 to cope. The defaults can also change, so please read ALL of 1796 the UPDATING entries. 1797 1798 Also, if you are tracking -current, you must be subscribed to 1799 freebsd-current@freebsd.org. Make sure that before you update 1800 your sources that you have read and understood all the recent 1801 messages there. If in doubt, please track -stable which has 1802 much fewer pitfalls. 1803 1804 [1] If you have third party modules, such as vmware, you 1805 should disable them at this point so they don't crash your 1806 system on reboot. 1807 1808 [3] From the bootblocks, boot -s, and then do 1809 fsck -p 1810 mount -u / 1811 mount -a 1812 cd src 1813 adjkerntz -i # if CMOS is wall time 1814 Also, when doing a major release upgrade, it is required that 1815 you boot into single user mode to do the installworld. 1816 1817 [4] Note: This step is non-optional. Failure to do this step 1818 can result in a significant reduction in the functionality of the 1819 system. Attempting to do it by hand is not recommended and those 1820 that pursue this avenue should read this file carefully, as well 1821 as the archives of freebsd-current and freebsd-hackers mailing lists 1822 for potential gotchas. The -U option is also useful to consider. 1823 See mergemaster(8) for more information. 1824 1825 [5] Usually this step is a noop. However, from time to time 1826 you may need to do this if you get unknown user in the following 1827 step. It never hurts to do it all the time. You may need to 1828 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1829 install) after the buildworld before this step if you last updated 1830 from current before 20130425 or from -stable before 20130430. 1831 1832 [6] This only deletes old files and directories. Old libraries 1833 can be deleted by "make delete-old-libs", but you have to make 1834 sure that no program is using those libraries anymore. 1835 1836 [8] In order to have a kernel that can run the 4.x binaries needed to 1837 do an installworld, you must include the COMPAT_FREEBSD4 option in 1838 your kernel. Failure to do so may leave you with a system that is 1839 hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 1840 required to run the 5.x binaries on more recent kernels. And so on 1841 for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 1842 1843 Make sure that you merge any new devices from GENERIC since the 1844 last time you updated your kernel config file. 1845 1846 [9] When checking out sources, you must include the -P flag to have 1847 cvs prune empty directories. 1848 1849 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1850 "?=" instead of the "=" assignment operator, so that buildworld can 1851 override the CPUTYPE if it needs to. 1852 1853 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1854 not on the command line, or in /etc/make.conf. buildworld will 1855 warn if it is improperly defined. 1856FORMAT: 1857 1858This file contains a list, in reverse chronological order, of major 1859breakages in tracking -current. It is not guaranteed to be a complete 1860list of such breakages, and only contains entries since September 23, 2011. 1861If you need to see UPDATING entries from before that date, you will need 1862to fetch an UPDATING file from an older FreeBSD release. 1863 1864Copyright information: 1865 1866Copyright 1998-2009 M. Warner Losh. All Rights Reserved. 1867 1868Redistribution, publication, translation and use, with or without 1869modification, in full or in part, in any form or format of this 1870document are permitted without further permission from the author. 1871 1872THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1873IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1874WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1875DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1876INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1877(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1878SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1879HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1880STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1881IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1882POSSIBILITY OF SUCH DAMAGE. 1883 1884Contact Warner Losh if you have any questions about your use of 1885this document. 1886 1887$FreeBSD$ 1888