UPDATING revision 301050
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 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html 10 11Items affecting the ports and packages system can be found in 12/usr/ports/UPDATING. Please read that file before running portupgrade. 13 14NOTE: FreeBSD has switched from gcc to clang. If you have trouble bootstrapping 15from older versions of FreeBSD, try WITHOUT_CLANG to bootstrap to the tip of 16stable/10, and then rebuild without this option. The bootstrap process from 17older version of current is a bit fragile. 18 1920160531 p35 FreeBSD-SA-16:20.linux 20 FreeBSD-SA-16:21.43bsd 21 FreeBSD-SA-16:22.libarchive 22 23 Fix kernel stack disclosure in Linux compatibility layer. [SA-16:20] 24 Fix kernel stack disclosure in 4.3BSD compatibility layer. [SA-16:21] 25 Fix directory traversal in cpio(1). [SA-16:22] 26 2720160517 p34 FreeBSD-SA-16:18.atkbd 28 FreeBSD-SA-16:19.sendmsg 29 30 Fix buffer overflow in keyboard driver. [SA-16:18] 31 32 Fix incorrect argument handling in sendmsg(2). [SA-16:19] 33 3420160504 p33 FreeBSD-SA-16:17.openssl 35 FreeBSD-EN-16:08.zfs 36 37 Fix multiple OpenSSL vulnerabilitites. [SA-16:17] 38 39 Fix memory leak in ZFS. [EN-16:08] 40 4120160429 p32 FreeBSD-SA-16:16.ntp 42 43 Fix multiple vulnerabilities of ntp. 44 4520160316 p31 FreeBSD-SA-16:14.openssh-xauth 46 FreeBSD-SA-16:15.sysarch 47 FreeBSD-EN-16:04.hyperv 48 49 Fix OpenSSH xauth(1) command injection. [SA-16:14] 50 Fix incorrect argument validation in sysarch(2). [SA-16:15] 51 Fix Hyper-V KVP (Key-Value Pair) daemon indefinite sleep. [EN-16:04] 52 5320160303 p30 FreeBSD-SA-16:12.openssl 54 55 Fix multiple vulnerabilities of OpenSSL. 56 5720160130 p29 FreeBSD-SA-16:11.openssl 58 59 Fix OpenSSL SSLv2 ciphersuite downgrade vulnerability. [SA-16:11] 60 6120160127 p28 FreeBSD-SA-16:09.ntp 62 FreeBSD-SA-16:10.linux 63 64 Fix multiple vulnerabilities of ntp. [SA-16:09] 65 66 Fix Linux compatibility layer issetugid(2) system call 67 vulnerability. [SA-16:10] 68 6920160114 p27 FreeBSD-SA-16:07.openssh 70 71 Fix OpenSSH client information leak. [SA-16:07] 72 7320160114 p26 FreeBSD-EN-16:02.pf 74 FreeBSD-EN-16:03.yplib 75 FreeBSD-SA-16:01.sctp 76 FreeBSD-SA-16:02.ntp 77 FreeBSD-SA-16:03.linux 78 FreeBSD-SA-16:04.linux 79 FreeBSD-SA-16:05.tcp 80 FreeBSD-SA-16:06.bsnmpd 81 82 Fix pf(4) generating bad TCP checksums. [EN-16:02] 83 Fix infinite loop in YP/NIS client library. [EN-16:03] 84 Fix remote denial of service in SCTP. [SA-16:01] 85 Update NTP to 4.2.8p5. [SA-16:02] 86 Fix kernel memory diclosure in Linux compatibility layer. [SA-16:03] 87 Fix kernel memory overwrite in Linux compatibility layer. [SA-16:04] 88 Fix crash in TCP MD5 signatures. [SA-16:05] 89 Fix insecure default permissions for snmpd.config. [SA-16:06] 90 9120151205 p25 FreeBSD-SA-15:26.openssl 92 93 Fix multiple OpenSSL vulnerabilities. [SA-15:26] 94 9520151104 p24 FreeBSD-SA-15:25.ntp [revised] 96 FreeBSD-EN-15:19.kqueue 97 FreeBSD-EN-15:20.vm 98 99 Fix regression in ntpd(8) lacking support for RAWDCF reference 100 clock in 10.1-RELEASE-p23. [SA-15:25.ntp] 101 102 Fix kqueue write events never fired for files greater 2GB. [EN-15:19] 103 104 Fix applications exiting due to segmentation violation on a correct 105 memory address. [EN-15:20] 106 10720151026: p23 FreeBSD-SA-15:25.ntp 108 109 Fix multiple NTP vulnerabilities. New NTP version is 4.2.8p4. 110 111 The configuration file syntax has been changed, thus mergemaster 112 run is recommended. Now the "kod" parameter requires "limited" 113 parameter. If the ntp.conf is not updated, the ntpd will run 114 successfully, but with KoD disabled. 115 11620151002: p22 FreeBSD-SA-15:24.rpcbind [revised] 117 Revised patch to address a regression that prevents NIS from working. 118 11920150929: p21 FreeBSD-SA-15:24.rpcbind 120 121 Fix rpcbind(8) remote denial of service. [SA-15:24] 122 12320150916: p20 FreeBSD-EN-15:18.pkg 124 125 Implement pubkey support for pkg(7) bootstrap. [EN-15:18] 126 12720150825: p19 FreeBSD-SA-15:21.amd64 128 FreeBSD-SA-15:22.openssh 129 FreeBSD-EN-15:14.ixgbe 130 FreeBSD-EN-15:15.pkg 131 132 Fix local privilege escalation in IRET handler. [SA-15:21] 133 134 Fix OpenSSH multiple vulnerabilities. [SA-15:22] 135 136 Disabled ixgbe(4) flow-director support. [EN-15:14] 137 138 Fix insufficient check of unsupported pkg(7) signature methods. 139 [EN-15:15] 140 14120150818: p18 FreeBSD-SA-15:20.expat 142 143 Fix multiple integer overflows in expat (libbsdxml) XML parser. 144 [SA-15:20] 145 14620150805: p17 FreeBSD-SA-15:18.bsdpatch 147 FreeBSD-SA-15:19.routed 148 149 Fix patch(1) shell injection vulnerability via ed(1). 150 [SA-15:18] 151 152 Fix routed remote denial of service vulnerability. [SA-15:19] 153 15420150728: p16 FreeBSD-SA-15:14.bsdpatch 155 FreeBSD-SA-15:15.tcp 156 FreeBSD-SA-15:16.openssh 157 158 Fix patch(1) shell injection vulnerability. [SA-15:14] 159 160 Fix resource exhaustion in TCP reassembly. [SA-15:15] 161 162 Fix OpenSSH multiple vulnerabilities. [SA-15:16] 163 16420150721: p15 FreeBSD-SA-15:13.tcp 165 166 Fix resource exhaustion due to sessions stuck in LAST_ACK state. 167 [SA-15:13] 168 16920150630: p14 FreeBSD-EN-15:08.sendmail [revised] 170 FreeBSD-EN-15:09.xlocale 171 FreeBSD-EN-15:10.iconv 172 173 Improvements to sendmail TLS/DH interoperability. [EN-15:08] 174 175 Fix inconsistency between locale and rune locale states. 176 [EN-15:09] 177 178 Improved iconv(3) UTF-7 support. [EN-15:10] 179 18020150618: p13 FreeBSD-EN-15:08.sendmail 181 Improvements to sendmail TLS/DH interoperability. [EN-15:08] 182 18320150612: p12 FreeBSD-SA-15:10.openssl 184 Fix multiple vulnerabilities in OpenSSL. [SA-15:10] 185 18620150609: p11 FreeBSD-EN-15:06.file 187 FreeBSD-EN-15:07.zfs 188 189 Updated base system file(1) to 5.22 to address multiple denial 190 of service issues. [EN-15:06] 191 192 Improved reliability of ZFS when TRIM/UNMAP and/or L2ARC is used. 193 [EN-15:07] 194 19520150513: p10 FreeBSD-EN-15:04.freebsd-update 196 FreeBSD-EN-15:05.ufs 197 198 Fix bug with freebsd-update(8) that does not ensure the previous 199 upgrade was completed. [EN-15:04] 200 201 Fix deadlock on reboot with UFS tuned with SU+J. [EN-15:05] 202 20320150407: p9 FreeBSD-SA-15:04.igmp [revised] 204 FreeBSD-SA-15:07.ntp 205 FreeBSD-SA-15:08.bsdinstall 206 FreeBSD-SA-15:09.ipv6 207 208 Improved patch for SA-15:04.igmp. 209 210 Fix multiple vulnerabilities of ntp. [SA-15:07] 211 212 Fix bsdinstall(8) insecure default GELI keyfile permissions. [SA-15:08] 213 214 Fix Denial of Service with IPv6 Router Advertisements. [SA-15:09] 215 21620150320: p8 217 Fix patch for SA-15:06.openssl. 218 21920150319: p7 FreeBSD-SA-15:06.openssl 220 Fix multiple vulnerabilities in OpenSSL. [SA-15:06] 221 22220150225: p6 FreeBSD-SA-15:04.igmp 223 FreeBSD-EN-15:01.vt 224 FreeBSD-EN-15:02.openssl 225 FreeBSD-EN-15:03.freebsd-update 226 227 Fix integer overflow in IGMP protocol. [SA-15:04] 228 229 Fix vt(4) crash with improper ioctl parameters. [EN-15:01] 230 231 Updated base system OpenSSL to 1.0.1l. [EN-15:02] 232 233 Fix freebsd-update libraries update ordering issue. [EN-15:03] 234 23520150127: p5 FreeBSD-SA-15:02.kmem 236 FreeBSD-SA-15:03.sctp 237 238 Fix SCTP SCTP_SS_VALUE kernel memory corruption and disclosure 239 vulnerability. [SA-15:02] 240 241 Fix SCTP stream reset vulnerability. [SA-15:03] 242 24320150114: p4 FreeBSD-SA-15:01.openssl 244 Fix multiple vulnerabilities in OpenSSL. [SA-15:01] 245 24620141223: p3 FreeBSD-SA-14:31.ntp 247 FreeBSD-EN-14:13.freebsd-update 248 249 Fix multiple vulnerabilities in NTP suite. [SA-14:31] 250 Fix directory deletion issue in freebsd-update. [EN-14:13] 251 25220141217: p2 FreeBSD-SA-14:30.unbound 253 Fix unbound remote denial of service vulnerability. 254 25520141210: p1 FreeBSD-SA-14:27.stdio 256 FreeBSD-SA-14:28.file 257 258 Fix buffer overflow in stdio. [SA-14:27] 259 260 Fix multiple vulnerabilities in file(1) and libmagic(3). 261 [SA-14:28] 262 26320140904: 264 The ofwfb driver, used to provide a graphics console on PowerPC when 265 using vt(4), no longer allows mmap() of all of physical memory. This 266 will prevent Xorg on PowerPC with some ATI graphics cards from 267 initializing properly unless x11-servers/xorg-server is updated to 268 1.12.4_8 or newer. 269 27020140831: 271 The libatf-c and libatf-c++ major versions were downgraded to 0 and 272 1 respectively to match the upstream numbers. They were out of 273 sync because, when they were originally added to FreeBSD, the 274 upstream versions were not respected. These libraries are private 275 and not yet built by default, so renumbering them should be a 276 non-issue. However, unclean source trees will yield broken test 277 programs once the operator executes "make delete-old-libs" after a 278 "make installworld". 279 280 Additionally, the atf-sh binary was made private by moving it into 281 /usr/libexec/. Already-built shell test programs will keep the 282 path to the old binary so they will break after "make delete-old" 283 is run. 284 285 If you are using WITH_TESTS=yes (not the default), wipe the object 286 tree and rebuild from scratch to prevent spurious test failures. 287 This is only needed once: the misnumbered libraries and misplaced 288 binaries have been added to OptionalObsoleteFiles.inc so they will 289 be removed during a clean upgrade. 290 29120140814: 292 The ixgbe tunables now match their sysctl counterparts, for example: 293 hw.ixgbe.enable_aim => hw.ix.enable_aim 294 Anyone using ixgbe tunables should ensure they update /boot/loader.conf. 295 29620140801: 297 The NFSv4.1 server committed by r269398 changes the internal 298 function call interfaces used between the NFS and krpc modules. 299 As such, __FreeBSD_version was bumped. 300 30120140729: 302 The default unbound configuration has been modified to address 303 issues with reverse lookups on networks that use private 304 address ranges. If you use the local_unbound service, run 305 "service local_unbound setup" as root to regenerate your 306 configuration, then "service local_unbound reload" to load the 307 new configuration. 308 30920140717: 310 It is no longer necessary to include the dwarf version in your DEBUG 311 options in your kernel config file. The bug that required it to be 312 placed in the config file has bene fixed. DEBUG should now just 313 contain -g. The build system will automatically update things 314 to do the right thing. 315 31620140715: 317 Several ABI breaking changes were merged to CTL and new iSCSI code. 318 All CTL and iSCSI-related tools, such as ctladm, ctld, iscsid and 319 iscsictl need to be rebuilt to work with a new kernel. 320 32120140708: 322 The WITHOUT_VT_SUPPORT kernel config knob has been renamed 323 WITHOUT_VT. (The other _SUPPORT knobs have a consistent meaning 324 which differs from the behaviour controlled by this knob.) 325 32620140608: 327 On i386 and amd64 systems, the onifconsole flag is now set by default 328 in /etc/ttys for ttyu0. This causes ttyu0 to be automatically enabled 329 as a login TTY if it is set in the bootloader as an active kernel 330 console. No changes in behavior should result otherwise. To revert to 331 the previous behavior, set ttyu0 to "off" in /etc/ttys. 332 33320140512: 334 Clang and llvm have been upgraded to 3.4.1 release. 335 33620140321: 337 Clang and llvm have been upgraded to 3.4 release. 338 33920140306: 340 If a Makefile in a tests/ directory was auto-generating a Kyuafile 341 instead of providing an explicit one, this would prevent such 342 Makefile from providing its own Kyuafile in the future during 343 NO_CLEAN builds. This has been fixed in the Makefiles but manual 344 intervention is needed to clean an objdir if you use NO_CLEAN: 345 # find /usr/obj -name Kyuafile | xargs rm -f 346 34720140303: 348 OpenSSH will now ignore errors caused by kernel lacking of Capsicum 349 capability mode support. Please note that enabling the feature in 350 kernel is still highly recommended. 351 35220140227: 353 OpenSSH is now built with sandbox support, and will use sandbox as 354 the default privilege separation method. This requires Capsicum 355 capability mode support in kernel. 356 35720140216: 358 The nve(4) driver for NVIDIA nForce MCP Ethernet adapters has 359 been deprecated and will not be part of FreeBSD 11.0 and later 360 releases. If you use this driver, please consider switching to 361 the nfe(4) driver instead. 362 36320140120: 364 10.0-RELEASE. 365 36620131216: 367 The behavior of gss_pseudo_random() for the krb5 mechanism 368 has changed, for applications requesting a longer random string 369 than produced by the underlying enctype's pseudo-random() function. 370 In particular, the random string produced from a session key of 371 enctype aes256-cts-hmac-sha1-96 or aes256-cts-hmac-sha1-96 will 372 be different at the 17th octet and later, after this change. 373 The counter used in the PRF+ construction is now encoded as a 374 big-endian integer in accordance with RFC 4402. 375 __FreeBSD_version is bumped to 1000701. 376 37720131108: 378 The WITHOUT_ATF build knob has been removed and its functionality 379 has been subsumed into the more generic WITHOUT_TESTS. If you were 380 using the former to disable the build of the ATF libraries, you 381 should change your settings to use the latter. 382 38320131031: 384 The default version of mtree is nmtree which is obtained from 385 NetBSD. The output is generally the same, but may vary 386 slightly. If you found you need identical output adding 387 "-F freebsd9" to the command line should do the trick. For the 388 time being, the old mtree is available as fmtree. 389 39020131014: 391 libbsdyml has been renamed to libyaml and moved to /usr/lib/private. 392 This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg 393 1.1.4_8 and verify bsdyml not linked in, before running "make 394 delete-old-libs": 395 # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean 396 or 397 # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml 398 39920131010: 400 The rc.d/jail script has been updated to support jail(8) 401 configuration file. The "jail_<jname>_*" rc.conf(5) variables 402 for per-jail configuration are automatically converted to 403 /var/run/jail.<jname>.conf before the jail(8) utility is invoked. 404 This is transparently backward compatible. See below about some 405 incompatibilities and rc.conf(5) manual page for more details. 406 407 These variables are now deprecated in favor of jail(8) configuration 408 file. One can use "rc.d/jail config <jname>" command to generate 409 a jail(8) configuration file in /var/run/jail.<jname>.conf without 410 running the jail(8) utility. The default pathname of the 411 configuration file is /etc/jail.conf and can be specified by 412 using $jail_conf or $jail_<jname>_conf variables. 413 414 Please note that jail_devfs_ruleset accepts an integer at 415 this moment. Please consider to rewrite the ruleset name 416 with an integer. 417 41820130930: 419 BIND has been removed from the base system. If all you need 420 is a local resolver, simply enable and start the local_unbound 421 service instead. Otherwise, several versions of BIND are 422 available in the ports tree. The dns/bind99 port is one example. 423 424 With this change, nslookup(1) and dig(1) are no longer in the base 425 system. Users should instead use host(1) and drill(1) which are 426 in the base system. Alternatively, nslookup and dig can 427 be obtained by installing the dns/bind-tools port. 428 42920130916: 430 With the addition of unbound(8), a new unbound user is now 431 required during installworld. "mergemaster -p" can be used to 432 add the user prior to installworld, as documented in the handbook. 433 43420130911: 435 OpenSSH is now built with DNSSEC support, and will by default 436 silently trust signed SSHFP records. This can be controlled with 437 the VerifyHostKeyDNS client configuration setting. DNSSEC support 438 can be disabled entirely with the WITHOUT_LDNS option in src.conf. 439 44020130906: 441 The GNU Compiler Collection and C++ standard library (libstdc++) 442 are no longer built by default on platforms where clang is the system 443 compiler. You can enable them with the WITH_GCC and WITH_GNUCXX 444 options in src.conf. 445 44620130905: 447 The PROCDESC kernel option is now part of the GENERIC kernel 448 configuration and is required for the rwhod(8) to work. 449 If you are using custom kernel configuration, you should include 450 'options PROCDESC'. 451 45220130905: 453 The API and ABI related to the Capsicum framework was modified 454 in backward incompatible way. The userland libraries and programs 455 have to be recompiled to work with the new kernel. This includes the 456 following libraries and programs, but the whole buildworld is 457 advised: libc, libprocstat, dhclient, tcpdump, hastd, hastctl, 458 kdump, procstat, rwho, rwhod, uniq. 459 46020130903: 461 AES-NI intrinsic support has been added to gcc. The AES-NI module 462 has been updated to use this support. A new gcc is required to build 463 the aesni module on both i386 and amd64. 464 46520130821: 466 The PADLOCK_RNG and RDRAND_RNG kernel options are now devices. 467 Thus "device padlock_rng" and "device rdrand_rng" should be 468 used instead of "options PADLOCK_RNG" & "options RDRAND_RNG". 469 47020130813: 471 WITH_ICONV has been split into two feature sets. WITH_ICONV now 472 enables just the iconv* functionality and is now on by default. 473 WITH_LIBICONV_COMPAT enables the libiconv api and link time 474 compatability. Set WITHOUT_ICONV to build the old way. 475 If you have been using WITH_ICONV before, you will very likely 476 need to turn on WITH_LIBICONV_COMPAT. 477 47820130806: 479 INVARIANTS option now enables DEBUG for code with OpenSolaris and 480 Illumos origin, including ZFS. If you have INVARIANTS in your 481 kernel configuration, then there is no need to set DEBUG or ZFS_DEBUG 482 explicitly. 483 DEBUG used to enable witness(9) tracking of OpenSolaris (mostly ZFS) 484 locks if WITNESS option was set. Because that generated a lot of 485 witness(9) reports and all of them were believed to be false 486 positives, this is no longer done. New option OPENSOLARIS_WITNESS 487 can be used to achieve the previous behavior. 488 48920130806: 490 Timer values in IPv6 data structures now use time_uptime instead 491 of time_second. Although this is not a user-visible functional 492 change, userland utilities which directly use them---ndp(8), 493 rtadvd(8), and rtsold(8) in the base system---need to be updated 494 to r253970 or later. 495 49620130802: 497 find -delete can now delete the pathnames given as arguments, 498 instead of only files found below them or if the pathname did 499 not contain any slashes. Formerly, the following error message 500 would result: 501 502 find: -delete: <path>: relative path potentially not safe 503 504 Deleting the pathnames given as arguments can be prevented 505 without error messages using -mindepth 1 or by changing 506 directory and passing "." as argument to find. This works in the 507 old as well as the new version of find. 508 50920130726: 510 Behavior of devfs rules path matching has been changed. 511 Pattern is now always matched against fully qualified devfs 512 path and slash characters must be explicitly matched by 513 slashes in pattern (FNM_PATHNAME). Rulesets involving devfs 514 subdirectories must be reviewed. 515 51620130716: 517 The default ARM ABI has changed to the ARM EABI. The old ABI is 518 incompatible with the ARM EABI and all programs and modules will 519 need to be rebuilt to work with a new kernel. 520 521 To keep using the old ABI ensure the WITHOUT_ARM_EABI knob is set. 522 523 NOTE: Support for the old ABI will be removed in the future and 524 users are advised to upgrade. 525 52620130709: 527 pkg_install has been disconnected from the build if you really need it 528 you should add WITH_PKGTOOLS in your src.conf(5). 529 53020130709: 531 Most of network statistics structures were changed to be able 532 keep 64-bits counters. Thus all tools, that work with networking 533 statistics, must be rebuilt (netstat(1), bsnmpd(1), etc.) 534 53520130629: 536 Fix targets that run multiple make's to use && rather than ; 537 so that subsequent steps depend on success of previous. 538 539 NOTE: if building 'universe' with -j* on stable/8 or stable/9 540 it would be better to start the build using bmake, to avoid 541 overloading the machine. 542 54320130618: 544 Fix a bug that allowed a tracing process (e.g. gdb) to write 545 to a memory-mapped file in the traced process's address space 546 even if neither the traced process nor the tracing process had 547 write access to that file. 548 54920130615: 550 CVS has been removed from the base system. An exact copy 551 of the code is available from the devel/cvs port. 552 55320130613: 554 Some people report the following error after the switch to bmake: 555 556 make: illegal option -- J 557 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable] 558 ... 559 *** [buildworld] Error code 2 560 561 this likely due to an old instance of make in 562 ${MAKEPATH} (${MAKEOBJDIRPREFIX}${.CURDIR}/make.${MACHINE}) 563 which src/Makefile will use that blindly, if it exists, so if 564 you see the above error: 565 566 rm -rf `make -V MAKEPATH` 567 568 should resolve it. 569 57020130516: 571 Use bmake by default. 572 Whereas before one could choose to build with bmake via 573 -DWITH_BMAKE one must now use -DWITHOUT_BMAKE to use the old 574 make. The goal is to remove these knobs for 10-RELEASE. 575 576 It is worth noting that bmake (like gmake) treats the command 577 line as the unit of failure, rather than statements within the 578 command line. Thus '(cd some/where && dosomething)' is safer 579 than 'cd some/where; dosomething'. The '()' allows consistent 580 behavior in parallel build. 581 58220130429: 583 Fix a bug that allows NFS clients to issue READDIR on files. 584 58520130426: 586 The WITHOUT_IDEA option has been removed because 587 the IDEA patent expired. 588 58920130426: 590 The sysctl which controls TRIM support under ZFS has been renamed 591 from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been 592 enabled by default. 593 59420130425: 595 The mergemaster command now uses the default MAKEOBJDIRPREFIX 596 rather than creating it's own in the temporary directory in 597 order allow access to bootstrapped versions of tools such as 598 install and mtree. When upgrading from version of FreeBSD where 599 the install command does not support -l, you will need to 600 install a new mergemaster command if mergemaster -p is required. 601 This can be accomplished with the command (cd src/usr.sbin/mergemaster 602 && make install). 603 60420130404: 605 Legacy ATA stack, disabled and replaced by new CAM-based one since 606 FreeBSD 9.0, completely removed from the sources. Kernel modules 607 atadisk and atapi*, user-level tools atacontrol and burncd are 608 removed. Kernel option `options ATA_CAM` is now permanently enabled 609 and removed. 610 61120130319: 612 SOCK_CLOEXEC and SOCK_NONBLOCK flags have been added to socket(2) 613 and socketpair(2). Software, in particular Kerberos, may 614 automatically detect and use these during building. The resulting 615 binaries will not work on older kernels. 616 61720130308: 618 CTL_DISABLE has also been added to the sparc64 GENERIC (for further 619 information, see the respective 20130304 entry). 620 62120130304: 622 Recent commits to callout(9) changed the size of struct callout, 623 so the KBI is probably heavily disturbed. Also, some functions 624 in callout(9)/sleep(9)/sleepqueue(9)/condvar(9) KPIs were replaced 625 by macros. Every kernel module using it won't load, so rebuild 626 is requested. 627 628 The ctl device has been re-enabled in GENERIC for i386 and amd64, 629 but does not initialize by default (because of the new CTL_DISABLE 630 option) to save memory. To re-enable it, remove the CTL_DISABLE 631 option from the kernel config file or set kern.cam.ctl.disable=0 632 in /boot/loader.conf. 633 63420130301: 635 The ctl device has been disabled in GENERIC for i386 and amd64. 636 This was done due to the extra memory being allocated at system 637 initialisation time by the ctl driver which was only used if 638 a CAM target device was created. This makes a FreeBSD system 639 unusable on 128MB or less of RAM. 640 64120130208: 642 A new compression method (lz4) has been merged to -HEAD. Please 643 refer to zpool-features(7) for more information. 644 645 Please refer to the "ZFS notes" section of this file for information 646 on upgrading boot ZFS pools. 647 64820130129: 649 A BSD-licensed patch(1) variant has been added and is installed 650 as bsdpatch, being the GNU version the default patch. 651 To inverse the logic and use the BSD-licensed one as default, 652 while having the GNU version installed as gnupatch, rebuild 653 and install world with the WITH_BSD_PATCH knob set. 654 65520130121: 656 Due to the use of the new -l option to install(1) during build 657 and install, you must take care not to directly set the INSTALL 658 make variable in your /etc/make.conf, /etc/src.conf, or on the 659 command line. If you wish to use the -C flag for all installs 660 you may be able to add INSTALL+=-C to /etc/make.conf or 661 /etc/src.conf. 662 66320130118: 664 The install(1) option -M has changed meaning and now takes an 665 argument that is a file or path to append logs to. In the 666 unlikely event that -M was the last option on the command line 667 and the command line contained at least two files and a target 668 directory the first file will have logs appended to it. The -M 669 option served little practical purpose in the last decade so its 670 use is expected to be extremely rare. 671 67220121223: 673 After switching to Clang as the default compiler some users of ZFS 674 on i386 systems started to experience stack overflow kernel panics. 675 Please consider using 'options KSTACK_PAGES=4' in such configurations. 676 67720121222: 678 GEOM_LABEL now mangles label names read from file system metadata. 679 Mangling affect labels containing spaces, non-printable characters, 680 '%' or '"'. Device names in /etc/fstab and other places may need to 681 be updated. 682 68320121217: 684 By default, only the 10 most recent kernel dumps will be saved. To 685 restore the previous behaviour (no limit on the number of kernel dumps 686 stored in the dump directory) add the following line to /etc/rc.conf: 687 688 savecore_flags="" 689 69020121201: 691 With the addition of auditdistd(8), a new auditdistd user is now 692 required during installworld. "mergemaster -p" can be used to 693 add the user prior to installworld, as documented in the handbook. 694 69520121117: 696 The sin6_scope_id member variable in struct sockaddr_in6 is now 697 filled by the kernel before passing the structure to the userland via 698 sysctl or routing socket. This means the KAME-specific embedded scope 699 id in sin6_addr.s6_addr[2] is always cleared in userland application. 700 This behavior can be controlled by net.inet6.ip6.deembed_scopeid. 701 __FreeBSD_version is bumped to 1000025. 702 70320121105: 704 On i386 and amd64 systems WITH_CLANG_IS_CC is now the default. 705 This means that the world and kernel will be compiled with clang 706 and that clang will be installed as /usr/bin/cc, /usr/bin/c++, 707 and /usr/bin/cpp. To disable this behavior and revert to building 708 with gcc, compile with WITHOUT_CLANG_IS_CC. Really old versions 709 of current may need to bootstrap WITHOUT_CLANG first if the clang 710 build fails (its compatibility window doesn't extend to the 9 stable 711 branch point). 712 71320121102: 714 The IPFIREWALL_FORWARD kernel option has been removed. Its 715 functionality now turned on by default. 716 71720121023: 718 The ZERO_COPY_SOCKET kernel option has been removed and 719 split into SOCKET_SEND_COW and SOCKET_RECV_PFLIP. 720 NB: SOCKET_SEND_COW uses the VM page based copy-on-write 721 mechanism which is not safe and may result in kernel crashes. 722 NB: The SOCKET_RECV_PFLIP mechanism is useless as no current 723 driver supports disposeable external page sized mbuf storage. 724 Proper replacements for both zero-copy mechanisms are under 725 consideration and will eventually lead to complete removal 726 of the two kernel options. 727 72820121023: 729 The IPv4 network stack has been converted to network byte 730 order. The following modules need to be recompiled together 731 with kernel: carp(4), divert(4), gif(4), siftr(4), gre(4), 732 pf(4), ipfw(4), ng_ipfw(4), stf(4). 733 73420121022: 735 Support for non-MPSAFE filesystems was removed from VFS. The 736 VFS_VERSION was bumped, all filesystem modules shall be 737 recompiled. 738 73920121018: 740 All the non-MPSAFE filesystems have been disconnected from 741 the build. The full list includes: codafs, hpfs, ntfs, nwfs, 742 portalfs, smbfs, xfs. 743 74420121016: 745 The interface cloning API and ABI has changed. The following 746 modules need to be recompiled together with kernel: 747 ipfw(4), pfsync(4), pflog(4), usb(4), wlan(4), stf(4), 748 vlan(4), disc(4), edsc(4), if_bridge(4), gif(4), tap(4), 749 faith(4), epair(4), enc(4), tun(4), if_lagg(4), gre(4). 750 75120121015: 752 The sdhci driver was split in two parts: sdhci (generic SD Host 753 Controller logic) and sdhci_pci (actual hardware driver). 754 No kernel config modifications are required, but if you 755 load sdhc as a module you must switch to sdhci_pci instead. 756 75720121014: 758 Import the FUSE kernel and userland support into base system. 759 76020121013: 761 The GNU sort(1) program has been removed since the BSD-licensed 762 sort(1) has been the default for quite some time and no serious 763 problems have been reported. The corresponding WITH_GNU_SORT 764 knob has also gone. 765 76620121006: 767 The pfil(9) API/ABI for AF_INET family has been changed. Packet 768 filtering modules: pf(4), ipfw(4), ipfilter(4) need to be recompiled 769 with new kernel. 770 77120121001: 772 The net80211(4) ABI has been changed to allow for improved driver 773 PS-POLL and power-save support. All wireless drivers need to be 774 recompiled to work with the new kernel. 775 77620120913: 777 The random(4) support for the VIA hardware random number 778 generator (`PADLOCK') is no longer enabled unconditionally. 779 Add the padlock_rng device in the custom kernel config if 780 needed. The GENERIC kernels on i386 and amd64 do include the 781 device, so the change only affects the custom kernel 782 configurations. 783 78420120908: 785 The pf(4) packet filter ABI has been changed. pfctl(8) and 786 snmp_pf module need to be recompiled to work with new kernel. 787 78820120828: 789 A new ZFS feature flag "com.delphix:empty_bpobj" has been merged 790 to -HEAD. Pools that have empty_bpobj in active state can not be 791 imported read-write with ZFS implementations that do not support 792 this feature. For more information read the zpool-features(5) 793 manual page. 794 79520120727: 796 The sparc64 ZFS loader has been changed to no longer try to auto- 797 detect ZFS providers based on diskN aliases but now requires these 798 to be explicitly listed in the OFW boot-device environment variable. 799 80020120712: 801 The OpenSSL has been upgraded to 1.0.1c. Any binaries requiring 802 libcrypto.so.6 or libssl.so.6 must be recompiled. Also, there are 803 configuration changes. Make sure to merge /etc/ssl/openssl.cnf. 804 80520120712: 806 The following sysctls and tunables have been renamed for consistency 807 with other variables: 808 kern.cam.da.da_send_ordered -> kern.cam.da.send_ordered 809 kern.cam.ada.ada_send_ordered -> kern.cam.ada.send_ordered 810 81120120628: 812 The sort utility has been replaced with BSD sort. For now, GNU sort 813 is also available as "gnusort" or the default can be set back to 814 GNU sort by setting WITH_GNU_SORT. In this case, BSD sort will be 815 installed as "bsdsort". 816 81720120611: 818 A new version of ZFS (pool version 5000) has been merged to -HEAD. 819 Starting with this version the old system of ZFS pool versioning 820 is superseded by "feature flags". This concept enables forward 821 compatibility against certain future changes in functionality of ZFS 822 pools. The first read-only compatible "feature flag" for ZFS pools 823 is named "com.delphix:async_destroy". For more information 824 read the new zpool-features(5) manual page. 825 Please refer to the "ZFS notes" section of this file for information 826 on upgrading boot ZFS pools. 827 82820120417: 829 The malloc(3) implementation embedded in libc now uses sources imported 830 as contrib/jemalloc. The most disruptive API change is to 831 /etc/malloc.conf. If your system has an old-style /etc/malloc.conf, 832 delete it prior to installworld, and optionally re-create it using the 833 new format after rebooting. See malloc.conf(5) for details 834 (specifically the TUNING section and the "opt.*" entries in the MALLCTL 835 NAMESPACE section). 836 83720120328: 838 Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb 839 is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is 840 now spelled mips. This is to aid compatibility with third-party 841 software that expects this naming scheme in uname(3). Little-endian 842 settings are unchanged. If you are updating a big-endian mips64 machine 843 from before this change, you may need to set MACHINE_ARCH=mips64 in 844 your environment before the new build system will recognize your machine. 845 84620120306: 847 Disable by default the option VFS_ALLOW_NONMPSAFE for all supported 848 platforms. 849 85020120229: 851 Now unix domain sockets behave "as expected" on nullfs(5). Previously 852 nullfs(5) did not pass through all behaviours to the underlying layer, 853 as a result if we bound to a socket on the lower layer we could connect 854 only to the lower path; if we bound to the upper layer we could connect 855 only to the upper path. The new behavior is one can connect to both the 856 lower and the upper paths regardless what layer path one binds to. 857 85820120211: 859 The getifaddrs upgrade path broken with 20111215 has been restored. 860 If you have upgraded in between 20111215 and 20120209 you need to 861 recompile libc again with your kernel. You still need to recompile 862 world to be able to configure CARP but this restriction already 863 comes from 20111215. 864 86520120114: 866 The set_rcvar() function has been removed from /etc/rc.subr. All 867 base and ports rc.d scripts have been updated, so if you have a 868 port installed with a script in /usr/local/etc/rc.d you can either 869 hand-edit the rcvar= line, or reinstall the port. 870 871 An easy way to handle the mass-update of /etc/rc.d: 872 rm /etc/rc.d/* && mergemaster -i 873 87420120109: 875 panic(9) now stops other CPUs in the SMP systems, disables interrupts 876 on the current CPU and prevents other threads from running. 877 This behavior can be reverted using the kern.stop_scheduler_on_panic 878 tunable/sysctl. 879 The new behavior can be incompatible with kern.sync_on_panic. 880 88120111215: 882 The carp(4) facility has been changed significantly. Configuration 883 of the CARP protocol via ifconfig(8) has changed, as well as format 884 of CARP events submitted to devd(8) has changed. See manual pages 885 for more information. The arpbalance feature of carp(4) is currently 886 not supported anymore. 887 888 Size of struct in_aliasreq, struct in6_aliasreq has changed. User 889 utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), 890 need to be recompiled. 891 89220111122: 893 The acpi_wmi(4) status device /dev/wmistat has been renamed to 894 /dev/wmistat0. 895 89620111108: 897 The option VFS_ALLOW_NONMPSAFE option has been added in order to 898 explicitely support non-MPSAFE filesystems. 899 It is on by default for all supported platform at this present 900 time. 901 90220111101: 903 The broken amd(4) driver has been replaced with esp(4) in the amd64, 904 i386 and pc98 GENERIC kernel configuration files. 905 90620110930: 907 sysinstall has been removed 908 90920110923: 910 The stable/9 branch created in subversion. This corresponds to the 911 RELENG_9 branch in CVS. 912 91320110913: 914 This commit modifies vfs_register() so that it uses a hash 915 calculation to set vfc_typenum, which is enabled by default. 916 The first time a system is booted after this change, the 917 vfc_typenum values will change for all file systems. The 918 main effect of this is a change to the NFS server file handles 919 for file systems that use vfc_typenum in their fsid, such as ZFS. 920 It will, however, prevent vfc_typenum from changing when file 921 systems are loaded in a different order for subsequent reboots. 922 To disable this, you can set vfs.typenumhash=0 in /boot/loader.conf 923 until you are ready to remount all NFS clients after a reboot. 924 92520110828: 926 Bump the shared library version numbers for libraries that 927 do not use symbol versioning, have changed the ABI compared 928 to stable/8 and which shared library version was not bumped. 929 Done as part of 9.0-RELEASE cycle. 930 93120110815: 932 During the merge of Capsicum features, the fget(9) KPI was modified. 933 This may require the rebuilding of out-of-tree device drivers -- 934 issues have been reported specifically with the nVidia device driver. 935 __FreeBSD_version is bumped to 900041. 936 937 Also, there is a period between 20110811 and 20110814 where the 938 special devices /dev/{stdin,stdout,stderr} did not work correctly. 939 Building world from a kernel during that window may not work. 940 94120110628: 942 The packet filter (pf) code has been updated to OpenBSD 4.5. 943 You need to update userland tools to be in sync with kernel. 944 This update breaks backward compatibility with earlier pfsync(4) 945 versions. Care must be taken when updating redundant firewall setups. 946 94720110608: 948 The following sysctls and tunables are retired on x86 platforms: 949 machdep.hlt_cpus 950 machdep.hlt_logical_cpus 951 The following sysctl is retired: 952 machdep.hyperthreading_allowed 953 The sysctls were supposed to provide a way to dynamically offline and 954 online selected CPUs on x86 platforms, but the implementation has not 955 been reliable especially with SCHED_ULE scheduler. 956 machdep.hyperthreading_allowed tunable is still available to ignore 957 hyperthreading CPUs at OS level. 958 Individual CPUs can be disabled using hint.lapic.X.disabled tunable, 959 where X is an APIC ID of a CPU. Be advised, though, that disabling 960 CPUs in non-uniform fashion will result in non-uniform topology and 961 may lead to sub-optimal system performance with SCHED_ULE, which is 962 a default scheduler. 963 96420110607: 965 cpumask_t type is retired and cpuset_t is used in order to describe 966 a mask of CPUs. 967 96820110531: 969 Changes to ifconfig(8) for dynamic address family detection mandate 970 that you are running a kernel of 20110525 or later. Make sure to 971 follow the update procedure to boot a new kernel before installing 972 world. 973 97420110513: 975 Support for sun4v architecture is officially dropped 976 97720110503: 978 Several KPI breaking changes have been committed to the mii(4) layer, 979 the PHY drivers and consequently some Ethernet drivers using mii(4). 980 This means that miibus.ko and the modules of the affected Ethernet 981 drivers need to be recompiled. 982 983 Note to kernel developers: Given that the OUI bit reversion problem 984 was fixed as part of these changes all mii(4) commits related to OUIs, 985 i.e. to sys/dev/mii/miidevs, PHY driver probing and vendor specific 986 handling, no longer can be merged verbatim to stable/8 and previous 987 branches. 988 98920110430: 990 Users of the Atheros AR71xx SoC code now need to add 'device ar71xx_pci' 991 into their kernel configurations along with 'device pci'. 992 99320110427: 994 The default NFS client is now the new NFS client, so fstype "newnfs" 995 is now "nfs" and the regular/old NFS client is now fstype "oldnfs". 996 Although mounts via fstype "nfs" will usually work without userland 997 changes, it is recommended that the mount(8) and mount_nfs(8) 998 commands be rebuilt from sources and that a link to mount_nfs called 999 mount_oldnfs be created. The new client is compiled into the 1000 kernel with "options NFSCL" and this is needed for diskless root 1001 file systems. The GENERIC kernel configs have been changed to use 1002 NFSCL and NFSD (the new server) instead of NFSCLIENT and NFSSERVER. 1003 To use the regular/old client, you can "mount -t oldnfs ...". For 1004 a diskless root file system, you must also include a line like: 1005 1006 vfs.root.mountfrom="oldnfs:" 1007 1008 in the boot/loader.conf on the root fs on the NFS server to make 1009 a diskless root fs use the old client. 1010 101120110424: 1012 The GENERIC kernels for all architectures now default to the new 1013 CAM-based ATA stack. It means that all legacy ATA drivers were 1014 removed and replaced by respective CAM drivers. If you are using 1015 ATA device names in /etc/fstab or other places, make sure to update 1016 them respectively (adX -> adaY, acdX -> cdY, afdX -> daY, astX -> saY, 1017 where 'Y's are the sequential numbers starting from zero for each type 1018 in order of detection, unless configured otherwise with tunables, 1019 see cam(4)). There will be symbolic links created in /dev/ to map 1020 old adX devices to the respective adaY. They should provide basic 1021 compatibility for file systems mounting in most cases, but they do 1022 not support old user-level APIs and do not have respective providers 1023 in GEOM. Consider using updated management tools with new device names. 1024 1025 It is possible to load devices ahci, ata, siis and mvs as modules, 1026 but option ATA_CAM should remain in kernel configuration to make ata 1027 module work as CAM driver supporting legacy ATA controllers. Device ata 1028 still can be used in modular fashion (atacore + ...). Modules atadisk 1029 and atapi* are not used and won't affect operation in ATA_CAM mode. 1030 Note that to use CAM-based ATA kernel should include CAM devices 1031 scbus, pass, da (or explicitly ada), cd and optionally others. All of 1032 them are parts of the cam module. 1033 1034 ataraid(4) functionality is now supported by the RAID GEOM class. 1035 To use it you can load geom_raid kernel module and use graid(8) tool 1036 for management. Instead of /dev/arX device names, use /dev/raid/rX. 1037 1038 No kernel config options or code have been removed, so if a problem 1039 arises, please report it and optionally revert to the old ATA stack. 1040 In order to do it you can remove from the kernel config: 1041 options ATA_CAM 1042 device ahci 1043 device mvs 1044 device siis 1045 , and instead add back: 1046 device atadisk # ATA disk drives 1047 device ataraid # ATA RAID drives 1048 device atapicd # ATAPI CDROM drives 1049 device atapifd # ATAPI floppy drives 1050 device atapist # ATAPI tape drives 1051 105220110423: 1053 The default NFS server has been changed to the new server, which 1054 was referred to as the experimental server. If you need to switch 1055 back to the old NFS server, you must now put the "-o" option on 1056 both the mountd and nfsd commands. This can be done using the 1057 mountd_flags and nfs_server_flags rc.conf variables until an 1058 update to the rc scripts is committed, which is coming soon. 1059 106020110418: 1061 The GNU Objective-C runtime library (libobjc), and other Objective-C 1062 related components have been removed from the base system. If you 1063 require an Objective-C library, please use one of the available ports. 1064 106520110331: 1066 ath(4) has been split into bus- and device- modules. if_ath contains 1067 the HAL, the TX rate control and the network device code. if_ath_pci 1068 contains the PCI bus glue. For Atheros MIPS embedded systems, if_ath_ahb 1069 contains the AHB glue. Users need to load both if_ath_pci and if_ath 1070 in order to use ath on everything else. 1071 1072 TO REPEAT: if_ath_ahb is not needed for normal users. Normal users only 1073 need to load if_ath and if_ath_pci for ath(4) operation. 1074 107520110314: 1076 As part of the replacement of sysinstall, the process of building 1077 release media has changed significantly. For details, please re-read 1078 release(7), which has been updated to reflect the new build process. 1079 108020110218: 1081 GNU binutils 2.17.50 (as of 2007-07-03) has been merged to -HEAD. This 1082 is the last available version under GPLv2. It brings a number of new 1083 features, such as support for newer x86 CPU's (with SSE-3, SSSE-3, SSE 1084 4.1 and SSE 4.2), better support for powerpc64, a number of new 1085 directives, and lots of other small improvements. See the ChangeLog 1086 file in contrib/binutils for the full details. 1087 108820110218: 1089 IPsec's HMAC_SHA256-512 support has been fixed to be RFC4868 1090 compliant, and will now use half of hash for authentication. 1091 This will break interoperability with all stacks (including all 1092 actual FreeBSD versions) who implement 1093 draft-ietf-ipsec-ciph-sha-256-00 (they use 96 bits of hash for 1094 authentication). 1095 The only workaround with such peers is to use another HMAC 1096 algorithm for IPsec ("phase 2") authentication. 1097 109820110207: 1099 Remove the uio_yield prototype and symbol. This function has 1100 been misnamed since it was introduced and should not be 1101 globally exposed with this name. The equivalent functionality 1102 is now available using kern_yield(curthread->td_user_pri). 1103 The function remains undocumented. 1104 110520110112: 1106 A SYSCTL_[ADD_]UQUAD was added for unsigned uint64_t pointers, 1107 symmetric with the existing SYSCTL_[ADD_]QUAD. Type checking 1108 for scalar sysctls is defined but disabled. Code that needs 1109 UQUAD to pass the type checking that must compile on older 1110 systems where the define is not present can check against 1111 __FreeBSD_version >= 900030. 1112 1113 The system dialog(1) has been replaced with a new version previously 1114 in ports as devel/cdialog. dialog(1) is mostly command-line compatible 1115 with the previous version, but the libdialog associated with it has 1116 a largely incompatible API. As such, the original version of libdialog 1117 will be kept temporarily as libodialog, until its base system consumers 1118 are replaced or updated. Bump __FreeBSD_version to 900030. 1119 112020110103: 1121 If you are trying to run make universe on a -stable system, and you get 1122 the following warning: 1123 "Makefile", line 356: "Target architecture for i386/conf/GENERIC 1124 unknown. config(8) likely too old." 1125 or something similar to it, then you must upgrade your -stable system 1126 to 8.2-Release or newer (really, any time after r210146 7/15/2010 in 1127 stable/8) or build the config from the latest stable/8 branch and 1128 install it on your system. 1129 1130 Prior to this date, building a current universe on 8-stable system from 1131 between 7/15/2010 and 1/2/2011 would result in a weird shell parsing 1132 error in the first kernel build phase. A new config on those old 1133 systems will fix that problem for older versions of -current. 1134 113520101228: 1136 The TCP stack has been modified to allow Khelp modules to interact with 1137 it via helper hook points and store per-connection data in the TCP 1138 control block. Bump __FreeBSD_version to 900029. User space tools that 1139 rely on the size of struct tcpcb in tcp_var.h (e.g. sockstat) need to 1140 be recompiled. 1141 114220101114: 1143 Generic IEEE 802.3 annex 31B full duplex flow control support has been 1144 added to mii(4) and bge(4), bce(4), msk(4), nfe(4) and stge(4) along 1145 with brgphy(4), e1000phy(4) as well as ip1000phy() have been converted 1146 to take advantage of it instead of using custom implementations. This 1147 means that these drivers now no longer unconditionally advertise 1148 support for flow control but only do so if flow control is a selected 1149 media option. This was implemented in the generic support that way in 1150 order to allow flow control to be switched on and off via ifconfig(8) 1151 with the PHY specific default to typically off in order to protect 1152 from unwanted effects. Consequently, if you used flow control with 1153 one of the above mentioned drivers you now need to explicitly enable 1154 it, for example via: 1155 ifconfig bge0 media auto mediaopt flowcontrol 1156 1157 Along with the above mentioned changes generic support for setting 1158 1000baseT master mode also has been added and brgphy(4), ciphy(4), 1159 e1000phy(4) as well as ip1000phy(4) have been converted to take 1160 advantage of it. This means that these drivers now no longer take the 1161 link0 parameter for selecting master mode but the master media option 1162 has to be used instead, for example like in the following: 1163 ifconfig bge0 media 1000baseT mediaopt full-duplex,master 1164 1165 Selection of master mode now is also available with all other PHY 1166 drivers supporting 1000baseT. 1167 116820101111: 1169 The TCP stack has received a significant update to add support for 1170 modularised congestion control and generally improve the clarity of 1171 congestion control decisions. Bump __FreeBSD_version to 900025. User 1172 space tools that rely on the size of struct tcpcb in tcp_var.h (e.g. 1173 sockstat) need to be recompiled. 1174 117520101002: 1176 The man(1) utility has been replaced by a new version that no longer 1177 uses /etc/manpath.config. Please consult man.conf(5) for how to 1178 migrate local entries to the new format. 1179 118020100928: 1181 The copyright strings printed by login(1) and sshd(8) at the time of a 1182 new connection have been removed to follow other operating systems and 1183 upstream sshd. 1184 118520100915: 1186 A workaround for a fixed ld bug has been removed in kernel code, 1187 so make sure that your system ld is built from sources after 1188 revision 210245 from 2010-07-19 (r211583 if building head kernel 1189 on stable/8, r211584 for stable/7; both from 2010-08-21). 1190 A symptom of incorrect ld version is different addresses for 1191 set_pcpu section and __start_set_pcpu symbol in kernel and/or modules. 1192 119320100913: 1194 The $ipv6_prefer variable in rc.conf(5) has been split into 1195 $ip6addrctl_policy and $ipv6_activate_all_interfaces. 1196 1197 The $ip6addrctl_policy is a variable to choose a pre-defined 1198 address selection policy set by ip6addrctl(8). A value 1199 "ipv4_prefer", "ipv6_prefer" or "AUTO" can be specified. The 1200 default is "AUTO". 1201 1202 The $ipv6_activate_all_interfaces specifies whether IFDISABLED 1203 flag (see an entry of 20090926) is set on an interface with no 1204 corresponding $ifconfig_IF_ipv6 line. The default is "NO" for 1205 security reason. If you want IPv6 link-local address on all 1206 interfaces by default, set this to "YES". 1207 1208 The old ipv6_prefer="YES" is equivalent to 1209 ipv6_activate_all_interfaces="YES" and 1210 ip6addrctl_policy="ipv6_prefer". 1211 121220100913: 1213 DTrace has grown support for userland tracing. Due to this, DTrace is 1214 now i386 and amd64 only. 1215 dtruss(1) is now installed by default on those systems and a new 1216 kernel module is needed for userland tracing: fasttrap. 1217 No changes to your kernel config file are necessary to enable 1218 userland tracing, but you might consider adding 'STRIP=' and 1219 'CFLAGS+=-fno-omit-frame-pointer' to your make.conf if you want 1220 to have informative userland stack traces in DTrace (ustack). 1221 122220100725: 1223 The acpi_aiboost(4) driver has been removed in favor of the new 1224 aibs(4) driver. You should update your kernel configuration file. 1225 122620100722: 1227 BSD grep has been imported to the base system and it is built by 1228 default. It is completely BSD licensed, highly GNU-compatible, uses 1229 less memory than its GNU counterpart and has a small codebase. 1230 However, it is slower than its GNU counterpart, which is mostly 1231 noticeable for larger searches, for smaller ones it is measurable 1232 but not significant. The reason is complex, the most important factor 1233 is that we lack a modern and efficient regex library and GNU 1234 overcomes this by optimizing the searches internally. Future work 1235 on improving the regex performance is planned, for the meantime, 1236 users that need better performance, can build GNU grep instead by 1237 setting the WITH_GNU_GREP knob. 1238 123920100713: 1240 Due to the import of powerpc64 support, all existing powerpc kernel 1241 configuration files must be updated with a machine directive like this: 1242 machine powerpc powerpc 1243 1244 In addition, an updated config(8) is required to build powerpc kernels 1245 after this change. 1246 124720100713: 1248 A new version of ZFS (version 15) has been merged to -HEAD. 1249 This version uses a python library for the following subcommands: 1250 zfs allow, zfs unallow, zfs groupspace, zfs userspace. 1251 For full functionality of these commands the following port must 1252 be installed: sysutils/py-zfs 1253 125420100429: 1255 'vm_page's are now hashed by physical address to an array of mutexes. 1256 Currently this is only used to serialize access to hold_count. Over 1257 time the page queue mutex will be peeled away. This changes the size 1258 of pmap on every architecture. And requires all callers of vm_page_hold 1259 and vm_page_unhold to be updated. 1260 126120100402: 1262 WITH_CTF can now be specified in src.conf (not recommended, there 1263 are some problems with static executables), make.conf (would also 1264 affect ports which do not use GNU make and do not override the 1265 compile targets) or in the kernel config (via "makeoptions 1266 WITH_CTF=yes"). 1267 When WITH_CTF was specified there before this was silently ignored, 1268 so make sure that WITH_CTF is not used in places which could lead 1269 to unwanted behavior. 1270 127120100311: 1272 The kernel option COMPAT_IA32 has been replaced with COMPAT_FREEBSD32 1273 to allow 32-bit compatibility on non-x86 platforms. All kernel 1274 configurations on amd64 and ia64 platforms using these options must 1275 be modified accordingly. 1276 127720100113: 1278 The utmp user accounting database has been replaced with utmpx, 1279 the user accounting interface standardized by POSIX. 1280 Unfortunately the semantics of utmp and utmpx don't match, 1281 making it practically impossible to support both interfaces. 1282 The user accounting database is used by tools like finger(1), 1283 last(1), talk(1), w(1) and ac(8). 1284 1285 All applications in the base system use utmpx. This means only 1286 local binaries (e.g. from the ports tree) may still use these 1287 utmp database files. These applications must be rebuilt to make 1288 use of utmpx. 1289 1290 After the system has been upgraded, it is safe to remove the old 1291 log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*), 1292 assuming their contents is of no importance anymore. Old wtmp 1293 databases can only be used by last(1) and ac(8) after they have 1294 been converted to the new format using wtmpcvt(1). 1295 129620100108: 1297 Introduce the kernel thread "deadlock resolver" (which can be enabled 1298 via the DEADLKRES option, see NOTES for more details) and the 1299 sleepq_type() function for sleepqueues. 1300 130120091202: 1302 The rc.firewall and rc.firewall6 were unified, and 1303 rc.firewall6 and rc.d/ip6fw were removed. 1304 According to the removal of rc.d/ip6fw, ipv6_firewall_* rc 1305 variables are obsoleted. Instead, the following new rc 1306 variables are added to rc.d/ipfw: 1307 1308 firewall_client_net_ipv6, firewall_simple_iif_ipv6, 1309 firewall_simple_inet_ipv6, firewall_simple_oif_ipv6, 1310 firewall_simple_onet_ipv6, firewall_trusted_ipv6 1311 1312 The meanings correspond to the relevant IPv4 variables. 1313 131420091125: 1315 8.0-RELEASE. 1316 131720091113: 1318 The default terminal emulation for syscons(4) has been changed 1319 from cons25 to xterm on all platforms except pc98. This means 1320 that the /etc/ttys file needs to be updated to ensure correct 1321 operation of applications on the console. 1322 1323 The terminal emulation style can be toggled per window by using 1324 vidcontrol(1)'s -T flag. The TEKEN_CONS25 kernel configuration 1325 options can be used to change the compile-time default back to 1326 cons25. 1327 1328 To prevent graphical artifacts, make sure the TERM environment 1329 variable is set to match the terminal emulation that is being 1330 performed by syscons(4). 1331 133220091109: 1333 The layout of the structure ieee80211req_scan_result has changed. 1334 Applications that require wireless scan results (e.g. ifconfig(8)) 1335 from net80211 need to be recompiled. 1336 1337 Applications such as wpa_supplicant(8) may require a full world 1338 build without using NO_CLEAN in order to get synchronized with the 1339 new structure. 1340 134120091025: 1342 The iwn(4) driver has been updated to support the 5000 and 5150 series. 1343 There's one kernel module for each firmware. Adding "device iwnfw" 1344 to the kernel configuration file means including all three firmware 1345 images inside the kernel. If you want to include just the one for 1346 your wireless card, use the devices iwn4965fw, iwn5000fw or 1347 iwn5150fw. 1348 134920090926: 1350 The rc.d/network_ipv6, IPv6 configuration script has been integrated 1351 into rc.d/netif. The changes are the following: 1352 1353 1. To use IPv6, simply define $ifconfig_IF_ipv6 like $ifconfig_IF 1354 for IPv4. For aliases, $ifconfig_IF_aliasN should be used. 1355 Note that both variables need the "inet6" keyword at the head. 1356 1357 Do not set $ipv6_network_interfaces manually if you do not 1358 understand what you are doing. It is not needed in most cases. 1359 1360 $ipv6_ifconfig_IF and $ipv6_ifconfig_IF_aliasN still work, but 1361 they are obsolete. 1362 1363 2. $ipv6_enable is obsolete. Use $ipv6_prefer and 1364 "inet6 accept_rtadv" keyword in ifconfig(8) instead. 1365 1366 If you define $ipv6_enable=YES, it means $ipv6_prefer=YES and 1367 all configured interfaces have "inet6 accept_rtadv" in the 1368 $ifconfig_IF_ipv6. These are for backward compatibility. 1369 1370 3. A new variable $ipv6_prefer has been added. If NO, IPv6 1371 functionality of interfaces with no corresponding 1372 $ifconfig_IF_ipv6 is disabled by using "inet6 ifdisabled" flag, 1373 and the default address selection policy of ip6addrctl(8) 1374 is the IPv4-preferred one (see rc.d/ip6addrctl for more details). 1375 Note that if you want to configure IPv6 functionality on the 1376 disabled interfaces after boot, first you need to clear the flag by 1377 using ifconfig(8) like: 1378 1379 ifconfig em0 inet6 -ifdisabled 1380 1381 If YES, the default address selection policy is set as 1382 IPv6-preferred. 1383 1384 The default value of $ipv6_prefer is NO. 1385 1386 4. If your system need to receive Router Advertisement messages, 1387 define "inet6 accept_rtadv" in $ifconfig_IF_ipv6. The rc(8) 1388 scripts automatically invoke rtsol(8) when the interface becomes 1389 UP. The Router Advertisement messages are used for SLAAC 1390 (State-Less Address AutoConfiguration). 1391 139220090922: 1393 802.11s D3.03 support was committed. This is incompatible with the 1394 previous code, which was based on D3.0. 1395 139620090912: 1397 A sysctl variable net.inet6.ip6.accept_rtadv now sets the default value 1398 of a per-interface flag ND6_IFF_ACCEPT_RTADV, not a global knob to 1399 control whether accepting Router Advertisement messages or not. 1400 Also, a per-interface flag ND6_IFF_AUTO_LINKLOCAL has been added and 1401 a sysctl variable net.inet6.ip6.auto_linklocal is its default value. 1402 The ifconfig(8) utility now supports these flags. 1403 140420090910: 1405 ZFS snapshots are now mounted with MNT_IGNORE flag. Use -v option for 1406 mount(8) and -a option for df(1) to see them. 1407 140820090825: 1409 The old tunable hw.bus.devctl_disable has been superseded by 1410 hw.bus.devctl_queue. hw.bus.devctl_disable=1 in loader.conf should be 1411 replaced by hw.bus.devctl_queue=0. The default for this new tunable 1412 is 1000. 1413 141420090813: 1415 Remove the option STOP_NMI. The default action is now to use NMI only 1416 for KDB via the newly introduced function stop_cpus_hard() and 1417 maintain stop_cpus() to just use a normal IPI_STOP on ia32 and amd64. 1418 141920090803: 1420 The stable/8 branch created in subversion. This corresponds to the 1421 RELENG_8 branch in CVS. 1422 142320090719: 1424 Bump the shared library version numbers for all libraries that do not 1425 use symbol versioning as part of the 8.0-RELEASE cycle. Bump 1426 __FreeBSD_version to 800105. 1427 142820090714: 1429 Due to changes in the implementation of virtual network stack support, 1430 all network-related kernel modules must be recompiled. As this change 1431 breaks the ABI, bump __FreeBSD_version to 800104. 1432 143320090713: 1434 The TOE interface to the TCP syncache has been modified to remove 1435 struct tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. 1436 The cxgb driver is the only TOE consumer affected by this change, and 1437 needs to be recompiled along with the kernel. As this change breaks 1438 the ABI, bump __FreeBSD_version to 800103. 1439 144020090712: 1441 Padding has been added to struct tcpcb, sackhint and tcpstat in 1442 <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst 1443 maintaining the ABI. However, this change breaks the ABI, so bump 1444 __FreeBSD_version to 800102. User space tools that rely on the size of 1445 any of these structs (e.g. sockstat) need to be recompiled. 1446 144720090630: 1448 The NFS_LEGACYRPC option has been removed along with the old kernel 1449 RPC implementation that this option selected. Kernel configurations 1450 may need to be adjusted. 1451 145220090629: 1453 The network interface device nodes at /dev/net/<interface> have been 1454 removed. All ioctl operations can be performed the normal way using 1455 routing sockets. The kqueue functionality can generally be replaced 1456 with routing sockets. 1457 145820090628: 1459 The documentation from the FreeBSD Documentation Project (Handbook, 1460 FAQ, etc.) is now installed via packages by sysinstall(8) and under 1461 the /usr/local/share/doc/freebsd directory instead of /usr/share/doc. 1462 146320090624: 1464 The ABI of various structures related to the SYSV IPC API have been 1465 changed. As a result, the COMPAT_FREEBSD[456] and COMPAT_43 kernel 1466 options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version to 1467 800100. 1468 146920090622: 1470 Layout of struct vnet has changed as routing related variables were 1471 moved to their own Vimage module. Modules need to be recompiled. Bump 1472 __FreeBSD_version to 800099. 1473 147420090619: 1475 NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 and 1024 1476 respectively. As long as no more than 16 groups per process are used, 1477 no changes should be visible. When more than 16 groups are used, old 1478 binaries may fail if they call getgroups() or getgrouplist() with 1479 statically sized storage. Recompiling will work around this, but 1480 applications should be modified to use dynamically allocated storage 1481 for group arrays as POSIX.1-2008 does not cap an implementation's 1482 number of supported groups at NGROUPS_MAX+1 as previous versions did. 1483 1484 NFS and portalfs mounts may also be affected as the list of groups is 1485 truncated to 16. Users of NFS who use more than 16 groups, should 1486 take care that negative group permissions are not used on the exported 1487 file systems as they will not be reliable unless a GSSAPI based 1488 authentication method is used. 1489 149020090616: 1491 The compiling option ADAPTIVE_LOCKMGRS has been introduced. This 1492 option compiles in the support for adaptive spinning for lockmgrs 1493 which want to enable it. The lockinit() function now accepts the flag 1494 LK_ADAPTIVE in order to make the lock object subject to adaptive 1495 spinning when both held in write and read mode. 1496 149720090613: 1498 The layout of the structure returned by IEEE80211_IOC_STA_INFO has 1499 changed. User applications that use this ioctl need to be rebuilt. 1500 150120090611: 1502 The layout of struct thread has changed. Kernel and modules need to 1503 be rebuilt. 1504 150520090608: 1506 The layout of structs ifnet, domain, protosw and vnet_net has changed. 1507 Kernel modules need to be rebuilt. Bump __FreeBSD_version to 800097. 1508 150920090602: 1510 window(1) has been removed from the base system. It can now be 1511 installed from ports. The port is called misc/window. 1512 151320090601: 1514 The way we are storing and accessing `routing table' entries has 1515 changed. Programs reading the FIB, like netstat, need to be 1516 re-compiled. 1517 151820090601: 1519 A new netisr implementation has been added for FreeBSD 8. Network 1520 file system modules, such as igmp, ipdivert, and others, should be 1521 rebuilt. 1522 Bump __FreeBSD_version to 800096. 1523 152420090530: 1525 Remove the tunable/sysctl debug.mpsafevfs as its initial purpose is no 1526 more valid. 1527 152820090530: 1529 Add VOP_ACCESSX(9). File system modules need to be rebuilt. 1530 Bump __FreeBSD_version to 800094. 1531 153220090529: 1533 Add mnt_xflag field to 'struct mount'. File system modules need to be 1534 rebuilt. 1535 Bump __FreeBSD_version to 800093. 1536 153720090528: 1538 The compiling option ADAPTIVE_SX has been retired while it has been 1539 introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 1540 The KPI for sx_init_flags() changes as accepting flags: 1541 SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag has 1542 been introduced in order to handle the reversed logic. 1543 Bump __FreeBSD_version to 800092. 1544 154520090527: 1546 Add support for hierarchical jails. Remove global securelevel. 1547 Bump __FreeBSD_version to 800091. 1548 154920090523: 1550 The layout of struct vnet_net has changed, therefore modules 1551 need to be rebuilt. 1552 Bump __FreeBSD_version to 800090. 1553 155420090523: 1555 The newly imported zic(8) produces a new format in the output. Please 1556 run tzsetup(8) to install the newly created data to /etc/localtime. 1557 155820090520: 1559 The sysctl tree for the usb stack has renamed from hw.usb2.* to 1560 hw.usb.* and is now consistent again with previous releases. 1561 156220090520: 1563 802.11 monitor mode support was revised and driver api's were changed. 1564 Drivers dependent on net80211 now support DLT_IEEE802_11_RADIO instead 1565 of DLT_IEEE802_11. No user-visible data structures were changed but 1566 applications that use DLT_IEEE802_11 may require changes. 1567 Bump __FreeBSD_version to 800088. 1568 156920090430: 1570 The layout of the following structs has changed: sysctl_oid, 1571 socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 1572 vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 1573 panics may be experienced. World rebuild is required for 1574 correctly checking networking state from userland. 1575 Bump __FreeBSD_version to 800085. 1576 157720090429: 1578 MLDv2 and Source-Specific Multicast (SSM) have been merged 1579 to the IPv6 stack. VIMAGE hooks are in but not yet used. 1580 The implementation of SSM within FreeBSD's IPv6 stack closely 1581 follows the IPv4 implementation. 1582 1583 For kernel developers: 1584 1585 * The most important changes are that the ip6_output() and 1586 ip6_input() paths no longer take the IN6_MULTI_LOCK, 1587 and this lock has been downgraded to a non-recursive mutex. 1588 1589 * As with the changes to the IPv4 stack to support SSM, filtering 1590 of inbound multicast traffic must now be performed by transport 1591 protocols within the IPv6 stack. This does not apply to TCP and 1592 SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 1593 1594 * The KPIs used by IPv6 multicast are similar to those used by 1595 the IPv4 stack, with the following differences: 1596 * im6o_mc_filter() is analogous to imo_multicast_filter(). 1597 * The legacy KAME entry points in6_joingroup and in6_leavegroup() 1598 are shimmed to in6_mc_join() and in6_mc_leave() respectively. 1599 * IN6_LOOKUP_MULTI() has been deprecated and removed. 1600 * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 1601 for MLDv1 have an additional 'timer' argument which is used to 1602 jitter the initial membership report for the solicited-node 1603 multicast membership on-link. 1604 * This is not strictly needed for MLDv2, which already jitters 1605 its report transmissions. However, the 'timer' argument is 1606 preserved in case MLDv1 is active on the interface. 1607 1608 * The KAME linked-list based IPv6 membership implementation has 1609 been refactored to use a vector similar to that used by the IPv4 1610 stack. 1611 Code which maintains a list of its own multicast memberships 1612 internally, e.g. carp, has been updated to reflect the new 1613 semantics. 1614 1615 * There is a known Lock Order Reversal (LOR) due to in6_setscope() 1616 acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 1617 Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 1618 implementation constraint which needs to be addressed in HEAD. 1619 1620 For application developers: 1621 1622 * The changes are broadly similar to those made for the IPv4 1623 stack. 1624 1625 * The use of IPv4 and IPv6 multicast socket options on the same 1626 socket, using mapped addresses, HAS NOT been tested or supported. 1627 1628 * There are a number of issues with the implementation of various 1629 IPv6 multicast APIs which need to be resolved in the API surface 1630 before the implementation is fully compatible with KAME userland 1631 use, and these are mostly to do with interface index treatment. 1632 1633 * The literature available discusses the use of either the delta / ASM 1634 API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 1635 using setsourcefilter(3)/getsourcefilter(3). For more information 1636 please refer to RFC 3768, 'Socket Interface Extensions for 1637 Multicast Source Filters'. 1638 1639 * Applications which use the published RFC 3678 APIs should be fine. 1640 1641 For systems administrators: 1642 1643 * The mtest(8) utility has been refactored to support IPv6, in 1644 addition to IPv4. Interface addresses are no longer accepted 1645 as arguments, their names must be used instead. The utility 1646 will map the interface name to its first IPv4 address as 1647 returned by getifaddrs(3). 1648 1649 * The ifmcstat(8) utility has also been updated to print the MLDv2 1650 endpoint state and source filter lists via sysctl(3). 1651 1652 * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 1653 loopback of IPv6 multicast datagrams by default; it defaults to 1 1654 to preserve the existing behaviour. Disabling multicast loopback is 1655 recommended for optimal system performance. 1656 1657 * The IPv6 MROUTING code has been changed to examine this sysctl 1658 instead of attempting to perform a group lookup before looping 1659 back forwarded datagrams. 1660 1661 Bump __FreeBSD_version to 800084. 1662 166320090422: 1664 Implement low-level Bluetooth HCI API. 1665 Bump __FreeBSD_version to 800083. 1666 166720090419: 1668 The layout of struct malloc_type, used by modules to register new 1669 memory allocation types, has changed. Most modules will need to 1670 be rebuilt or panics may be experienced. 1671 Bump __FreeBSD_version to 800081. 1672 167320090415: 1674 Anticipate overflowing inp_flags - add inp_flags2. 1675 This changes most offsets in inpcb, so checking v4 connection 1676 state will require a world rebuild. 1677 Bump __FreeBSD_version to 800080. 1678 167920090415: 1680 Add an llentry to struct route and struct route_in6. Modules 1681 embedding a struct route will need to be recompiled. 1682 Bump __FreeBSD_version to 800079. 1683 168420090414: 1685 The size of rt_metrics_lite and by extension rtentry has changed. 1686 Networking administration apps will need to be recompiled. 1687 The route command now supports show as an alias for get, weighting 1688 of routes, sticky and nostick flags to alter the behavior of stateful 1689 load balancing. 1690 Bump __FreeBSD_version to 800078. 1691 169220090408: 1693 Do not use Giant for kbdmux(4) locking. This is wrong and 1694 apparently causing more problems than it solves. This will 1695 re-open the issue where interrupt handlers may race with 1696 kbdmux(4) in polling mode. Typical symptoms include (but 1697 not limited to) duplicated and/or missing characters when 1698 low level console functions (such as gets) are used while 1699 interrupts are enabled (for example geli password prompt, 1700 mountroot prompt etc.). Disabling kbdmux(4) may help. 1701 170220090407: 1703 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 1704 kernel modules referencing any of the above need to be recompiled. 1705 Bump __FreeBSD_version to 800075. 1706 170720090320: 1708 GEOM_PART has become the default partition slicer for storage devices, 1709 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 1710 introduces some changes: 1711 1712 MSDOS/EBR: the devices created from MSDOS extended partition entries 1713 (EBR) can be named differently than with GEOM_MBR and are now symlinks 1714 to devices with offset-based names. fstabs may need to be modified. 1715 1716 BSD: the "geometry does not match label" warning is harmless in most 1717 cases but it points to problems in file system misalignment with 1718 disk geometry. The "c" partition is now implicit, covers the whole 1719 top-level drive and cannot be (mis)used by users. 1720 1721 General: Kernel dumps are now not allowed to be written to devices 1722 whose partition types indicate they are meant to be used for file 1723 systems (or, in case of MSDOS partitions, as something else than 1724 the "386BSD" type). 1725 1726 Most of these changes date approximately from 200812. 1727 172820090319: 1729 The uscanner(4) driver has been removed from the kernel. This follows 1730 Linux removing theirs in 2.6 and making libusb the default interface 1731 (supported by sane). 1732 173320090319: 1734 The multicast forwarding code has been cleaned up. netstat(1) 1735 only relies on KVM now for printing bandwidth upcall meters. 1736 The IPv4 and IPv6 modules are split into ip_mroute_mod and 1737 ip6_mroute_mod respectively. The config(5) options for statically 1738 compiling this code remain the same, i.e. 'options MROUTING'. 1739 174020090315: 1741 Support for the IFF_NEEDSGIANT network interface flag has been 1742 removed, which means that non-MPSAFE network device drivers are no 1743 longer supported. In particular, if_ar, if_sr, and network device 1744 drivers from the old (legacy) USB stack can no longer be built or 1745 used. 1746 174720090313: 1748 POSIX.1 Native Language Support (NLS) has been enabled in libc and 1749 a bunch of new language catalog files have also been added. 1750 This means that some common libc messages are now localized and 1751 they depend on the LC_MESSAGES environmental variable. 1752 175320090313: 1754 The k8temp(4) driver has been renamed to amdtemp(4) since 1755 support for Family 10 and Family 11 CPU families was added. 1756 175720090309: 1758 IGMPv3 and Source-Specific Multicast (SSM) have been merged 1759 to the IPv4 stack. VIMAGE hooks are in but not yet used. 1760 1761 For kernel developers, the most important changes are that the 1762 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 1763 and this lock has been downgraded to a non-recursive mutex. 1764 1765 Transport protocols (UDP, Raw IP) are now responsible for filtering 1766 inbound multicast traffic according to group membership and source 1767 filters. The imo_multicast_filter() KPI exists for this purpose. 1768 Transports which do not use multicast (SCTP, TCP) already reject 1769 multicast by default. Forwarding and receive performance may improve 1770 as a mutex acquisition is no longer needed in the ip_input() 1771 low-level input path. in_addmulti() and in_delmulti() are shimmed 1772 to new KPIs which exist to support SSM in-kernel. 1773 1774 For application developers, it is recommended that loopback of 1775 multicast datagrams be disabled for best performance, as this 1776 will still cause the lock to be taken for each looped-back 1777 datagram transmission. The net.inet.ip.mcast.loop sysctl may 1778 be tuned to 0 to disable loopback by default; it defaults to 1 1779 to preserve the existing behaviour. 1780 1781 For systems administrators, to obtain best performance with 1782 multicast reception and multiple groups, it is always recommended 1783 that a card with a suitably precise hash filter is used. Hash 1784 collisions will still result in the lock being taken within the 1785 transport protocol input path to check group membership. 1786 1787 If deploying FreeBSD in an environment with IGMP snooping switches, 1788 it is recommended that the net.inet.igmp.sendlocal sysctl remain 1789 enabled; this forces 224.0.0.0/24 group membership to be announced 1790 via IGMP. 1791 1792 The size of 'struct igmpstat' has changed; netstat needs to be 1793 recompiled to reflect this. 1794 Bump __FreeBSD_version to 800070. 1795 179620090309: 1797 libusb20.so.1 is now installed as libusb.so.1 and the ports system 1798 updated to use it. This requires a buildworld/installworld in order to 1799 update the library and dependencies (usbconfig, etc). Its advisable to 1800 rebuild all ports which uses libusb. More specific directions are given 1801 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 1802 libusb are no longer required and can be removed. 1803 180420090302: 1805 A workaround is committed to allow the creation of System V shared 1806 memory segment of size > 2 GB on the 64-bit architectures. 1807 Due to a limitation of the existing ABI, the shm_segsz member 1808 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 1809 wrong for large segments. Note that limits must be explicitly 1810 raised to allow such segments to be created. 1811 181220090301: 1813 The layout of struct ifnet has changed, requiring a rebuild of all 1814 network device driver modules. 1815 181620090227: 1817 The /dev handling for the new USB stack has changed, a 1818 buildworld/installworld is required for libusb20. 1819 182020090223: 1821 The new USB2 stack has now been permanently moved in and all kernel and 1822 module names reverted to their previous values (eg, usb, ehci, ohci, 1823 ums, ...). The old usb stack can be compiled in by prefixing the name 1824 with the letter 'o', the old usb modules have been removed. 1825 Updating entry 20090216 for xorg and 20090215 for libmap may still 1826 apply. 1827 182820090217: 1829 The rc.conf(5) option if_up_delay has been renamed to 1830 defaultroute_delay to better reflect its purpose. If you have 1831 customized this setting in /etc/rc.conf you need to update it to 1832 use the new name. 1833 183420090216: 1835 xorg 7.4 wants to configure its input devices via hald which does not 1836 yet work with USB2. If the keyboard/mouse does not work in xorg then 1837 add 1838 Option "AllowEmptyInput" "off" 1839 to your ServerLayout section. This will cause X to use the configured 1840 kbd and mouse sections from your xorg.conf. 1841 184220090215: 1843 The GENERIC kernels for all architectures now default to the new USB2 1844 stack. No kernel config options or code have been removed so if a 1845 problem arises please report it and optionally revert to the old USB 1846 stack. If you are loading USB kernel modules or have a custom kernel 1847 that includes GENERIC then ensure that usb names are also changed over, 1848 eg uftdi -> usb2_serial_ftdi. 1849 1850 Older programs linked against the ports libusb 0.1 need to be 1851 redirected to the new stack's libusb20. /etc/libmap.conf can 1852 be used for this: 1853 # Map old usb library to new one for usb2 stack 1854 libusb-0.1.so.8 libusb20.so.1 1855 185620090209: 1857 All USB ethernet devices now attach as interfaces under the name ueN 1858 (eg. ue0). This is to provide a predictable name as vendors often 1859 change usb chipsets in a product without notice. 1860 186120090203: 1862 The ichsmb(4) driver has been changed to require SMBus slave 1863 addresses be left-justified (xxxxxxx0b) rather than right-justified. 1864 All of the other SMBus controller drivers require left-justified 1865 slave addresses, so this change makes all the drivers provide the 1866 same interface. 1867 186820090201: 1869 INET6 statistics (struct ip6stat) was updated. 1870 netstat(1) needs to be recompiled. 1871 187220090119: 1873 NTFS has been removed from GENERIC kernel on amd64 to match 1874 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 1875 will load ntfs.ko module automatically when NTFS support is 1876 actually needed, unless ntfs.ko is not installed or security 1877 level prohibits loading kernel modules. If either is the case, 1878 "options NTFS" has to be added into kernel config. 1879 188020090115: 1881 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 1882 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 1883 800061. User space tools that rely on the size of struct tcpcb in 1884 tcp_var.h (e.g. sockstat) need to be recompiled. 1885 188620081225: 1887 ng_tty(4) module updated to match the new TTY subsystem. 1888 Due to API change, user-level applications must be updated. 1889 New API support added to mpd5 CVS and expected to be present 1890 in next mpd5.3 release. 1891 189220081219: 1893 With __FreeBSD_version 800060 the makefs tool is part of 1894 the base system (it was a port). 1895 189620081216: 1897 The afdata and ifnet locks have been changed from mutexes to 1898 rwlocks, network modules will need to be re-compiled. 1899 190020081214: 1901 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 1902 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 1903 The new code reduced struct rtentry{} by 16 bytes on 32-bit 1904 architecture and 40 bytes on 64-bit architecture. The userland 1905 applications "arp" and "ndp" have been updated accordingly. 1906 The output from "netstat -r" shows only routing entries and 1907 none of the L2 information. 1908 190920081130: 1910 __FreeBSD_version 800057 marks the switchover from the 1911 binary ath hal to source code. Users must add the line: 1912 1913 options AH_SUPPORT_AR5416 1914 1915 to their kernel config files when specifying: 1916 1917 device ath_hal 1918 1919 The ath_hal module no longer exists; the code is now compiled 1920 together with the driver in the ath module. It is now 1921 possible to tailor chip support (i.e. reduce the set of chips 1922 and thereby the code size); consult ath_hal(4) for details. 1923 192420081121: 1925 __FreeBSD_version 800054 adds memory barriers to 1926 <machine/atomic.h>, new interfaces to ifnet to facilitate 1927 multiple hardware transmit queues for cards that support 1928 them, and a lock-less ring-buffer implementation to 1929 enable drivers to more efficiently manage queueing of 1930 packets. 1931 193220081117: 1933 A new version of ZFS (version 13) has been merged to -HEAD. 1934 This version has zpool attribute "listsnapshots" off by 1935 default, which means "zfs list" does not show snapshots, 1936 and is the same as Solaris behavior. 1937 193820081028: 1939 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 1940 194120081009: 1942 The uhci, ohci, ehci and slhci USB Host controller drivers have 1943 been put into separate modules. If you load the usb module 1944 separately through loader.conf you will need to load the 1945 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 1946 controller add the following to loader.conf: 1947 1948 uhci_load="YES" 1949 ehci_load="YES" 1950 195120081009: 1952 The ABI used by the PMC toolset has changed. Please keep 1953 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 1954 sync. 1955 195620081009: 1957 atapci kernel module now includes only generic PCI ATA 1958 driver. AHCI driver moved to ataahci kernel module. 1959 All vendor-specific code moved into separate kernel modules: 1960 ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, 1961 atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, 1962 atamarvell, atamicron, atanational, atanetcell, atanvidia, 1963 atapromise, ataserverworks, atasiliconimage, atasis, atavia 1964 196520080820: 1966 The TTY subsystem of the kernel has been replaced by a new 1967 implementation, which provides better scalability and an 1968 improved driver model. Most common drivers have been migrated to 1969 the new TTY subsystem, while others have not. The following 1970 drivers have not yet been ported to the new TTY layer: 1971 1972 PCI/ISA: 1973 cy, digi, rc, rp, sio 1974 1975 USB: 1976 ubser, ucycom 1977 1978 Line disciplines: 1979 ng_h4, ng_tty, ppp, sl, snp 1980 1981 Adding these drivers to your kernel configuration file shall 1982 cause compilation to fail. 1983 198420080818: 1985 ntpd has been upgraded to 4.2.4p5. 1986 198720080801: 1988 OpenSSH has been upgraded to 5.1p1. 1989 1990 For many years, FreeBSD's version of OpenSSH preferred DSA 1991 over RSA for host and user authentication keys. With this 1992 upgrade, we've switched to the vendor's default of RSA over 1993 DSA. This may cause upgraded clients to warn about unknown 1994 host keys even for previously known hosts. Users should 1995 follow the usual procedure for verifying host keys before 1996 accepting the RSA key. 1997 1998 This can be circumvented by setting the "HostKeyAlgorithms" 1999 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 2000 command line. 2001 2002 Please note that the sequence of keys offered for 2003 authentication has been changed as well. You may want to 2004 specify IdentityFile in a different order to revert this 2005 behavior. 2006 200720080713: 2008 The sio(4) driver has been removed from the i386 and amd64 2009 kernel configuration files. This means uart(4) is now the 2010 default serial port driver on those platforms as well. 2011 2012 To prevent collisions with the sio(4) driver, the uart(4) driver 2013 uses different names for its device nodes. This means the 2014 onboard serial port will now most likely be called "ttyu0" 2015 instead of "ttyd0". You may need to reconfigure applications to 2016 use the new device names. 2017 2018 When using the serial port as a boot console, be sure to update 2019 /boot/device.hints and /etc/ttys before booting the new kernel. 2020 If you forget to do so, you can still manually specify the hints 2021 at the loader prompt: 2022 2023 set hint.uart.0.at="isa" 2024 set hint.uart.0.port="0x3F8" 2025 set hint.uart.0.flags="0x10" 2026 set hint.uart.0.irq="4" 2027 boot -s 2028 202920080609: 2030 The gpt(8) utility has been removed. Use gpart(8) to partition 2031 disks instead. 2032 203320080603: 2034 The version that Linuxulator emulates was changed from 2.4.2 2035 to 2.6.16. If you experience any problems with Linux binaries 2036 please try to set sysctl compat.linux.osrelease to 2.4.2 and 2037 if it fixes the problem contact emulation mailing list. 2038 203920080525: 2040 ISDN4BSD (I4B) was removed from the src tree. You may need to 2041 update a your kernel configuration and remove relevant entries. 2042 204320080509: 2044 I have checked in code to support multiple routing tables. 2045 See the man pages setfib(1) and setfib(2). 2046 This is a hopefully backwards compatible version, 2047 but to make use of it you need to compile your kernel 2048 with options ROUTETABLES=2 (or more up to 16). 2049 205020080420: 2051 The 802.11 wireless support was redone to enable multi-bss 2052 operation on devices that are capable. The underlying device 2053 is no longer used directly but instead wlanX devices are 2054 cloned with ifconfig. This requires changes to rc.conf files. 2055 For example, change: 2056 ifconfig_ath0="WPA DHCP" 2057 to 2058 wlans_ath0=wlan0 2059 ifconfig_wlan0="WPA DHCP" 2060 see rc.conf(5) for more details. In addition, mergemaster of 2061 /etc/rc.d is highly recommended. Simultaneous update of userland 2062 and kernel wouldn't hurt either. 2063 2064 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 2065 modules were merged into the base wlan module. All references 2066 to these modules (e.g. in kernel config files) must be removed. 2067 206820080408: 2069 psm(4) has gained write(2) support in native operation level. 2070 Arbitrary commands can be written to /dev/psm%d and status can 2071 be read back from it. Therefore, an application is responsible 2072 for status validation and error recovery. It is a no-op in 2073 other operation levels. 2074 207520080312: 2076 Support for KSE threading has been removed from the kernel. To 2077 run legacy applications linked against KSE libmap.conf may 2078 be used. The following libmap.conf may be used to ensure 2079 compatibility with any prior release: 2080 2081 libpthread.so.1 libthr.so.1 2082 libpthread.so.2 libthr.so.2 2083 libkse.so.3 libthr.so.3 2084 208520080301: 2086 The layout of struct vmspace has changed. This affects libkvm 2087 and any executables that link against libkvm and use the 2088 kvm_getprocs() function. In particular, but not exclusively, 2089 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 2090 The effects are minimal, but it's advisable to upgrade world 2091 nonetheless. 2092 209320080229: 2094 The latest em driver no longer has support in it for the 2095 82575 adapter, this is now moved to the igb driver. The 2096 split was done to make new features that are incompatible 2097 with older hardware easier to do. 2098 209920080220: 2100 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 2101 likewise the kernel option is now GEOM_LINUX_LVM. 2102 210320080211: 2104 The default NFS mount mode has changed from UDP to TCP for 2105 increased reliability. If you rely on (insecurely) NFS 2106 mounting across a firewall you may need to update your 2107 firewall rules. 2108 210920080208: 2110 Belatedly note the addition of m_collapse for compacting 2111 mbuf chains. 2112 211320080126: 2114 The fts(3) structures have been changed to use adequate 2115 integer types for their members and so to be able to cope 2116 with huge file trees. The old fts(3) ABI is preserved 2117 through symbol versioning in libc, so third-party binaries 2118 using fts(3) should still work, although they will not take 2119 advantage of the extended types. At the same time, some 2120 third-party software might fail to build after this change 2121 due to unportable assumptions made in its source code about 2122 fts(3) structure members. Such software should be fixed 2123 by its vendor or, in the worst case, in the ports tree. 2124 FreeBSD_version 800015 marks this change for the unlikely 2125 case that a portable fix is impossible. 2126 212720080123: 2128 To upgrade to -current after this date, you must be running 2129 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 2130 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 2131 213220071128: 2133 The ADAPTIVE_GIANT kernel option has been retired because its 2134 functionality is the default now. 2135 213620071118: 2137 The AT keyboard emulation of sunkbd(4) has been turned on 2138 by default. In order to make the special symbols of the Sun 2139 keyboards driven by sunkbd(4) work under X these now have 2140 to be configured the same way as Sun USB keyboards driven 2141 by ukbd(4) (which also does AT keyboard emulation), f.e.: 2142 2143 Option "XkbLayout" "us" 2144 Option "XkbRules" "xorg" 2145 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 2146 214720071024: 2148 It has been decided that it is desirable to provide ABI 2149 backwards compatibility to the FreeBSD 4/5/6 versions of the 2150 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 2151 broken with the introduction of PCI domain support (see the 2152 20070930 entry). Unfortunately, this required the ABI of 2153 PCIOCGETCONF to be broken again in order to be able to 2154 provide backwards compatibility to the old version of that 2155 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 2156 again. As for prominent ports this affects neither pciutils 2157 nor xorg-server this time, the hal port needs to be rebuilt 2158 however. 2159 216020071020: 2161 The misnamed kthread_create() and friends have been renamed 2162 to kproc_create() etc. Many of the callers already 2163 used kproc_start().. 2164 I will return kthread_create() and friends in a while 2165 with implementations that actually create threads, not procs. 2166 Renaming corresponds with version 800002. 2167 216820071010: 2169 RELENG_7 branched. 2170 2171COMMON ITEMS: 2172 2173 General Notes 2174 ------------- 2175 Avoid using make -j when upgrading. While generally safe, there are 2176 sometimes problems using -j to upgrade. If your upgrade fails with 2177 -j, please try again without -j. From time to time in the past there 2178 have been problems using -j with buildworld and/or installworld. This 2179 is especially true when upgrading between "distant" versions (eg one 2180 that cross a major release boundary or several minor releases, or when 2181 several months have passed on the -current branch). 2182 2183 Sometimes, obscure build problems are the result of environment 2184 poisoning. This can happen because the make utility reads its 2185 environment when searching for values for global variables. To run 2186 your build attempts in an "environmental clean room", prefix all make 2187 commands with 'env -i '. See the env(1) manual page for more details. 2188 2189 When upgrading from one major version to another it is generally best 2190 to upgrade to the latest code in the currently installed branch first, 2191 then do an upgrade to the new branch. This is the best-tested upgrade 2192 path, and has the highest probability of being successful. Please try 2193 this approach before reporting problems with a major version upgrade. 2194 2195 When upgrading a live system, having a root shell around before 2196 installing anything can help undo problems. Not having a root shell 2197 around can lead to problems if pam has changed too much from your 2198 starting point to allow continued authentication after the upgrade. 2199 2200 ZFS notes 2201 --------- 2202 When upgrading the boot ZFS pool to a new version, always follow 2203 these two steps: 2204 2205 1.) recompile and reinstall the ZFS boot loader and boot block 2206 (this is part of "make buildworld" and "make installworld") 2207 2208 2.) update the ZFS boot block on your boot drive 2209 2210 The following example updates the ZFS boot block on the first 2211 partition (freebsd-boot) of a GPT partitioned drive ad0: 2212 "gpart bootcode -p /boot/gptzfsboot -i 1 ad0" 2213 2214 Non-boot pools do not need these updates. 2215 2216 To build a kernel 2217 ----------------- 2218 If you are updating from a prior version of FreeBSD (even one just 2219 a few days old), you should follow this procedure. It is the most 2220 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 2221 2222 make kernel-toolchain 2223 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 2224 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 2225 2226 To test a kernel once 2227 --------------------- 2228 If you just want to boot a kernel once (because you are not sure 2229 if it works, or if you want to boot a known bad kernel to provide 2230 debugging information) run 2231 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 2232 nextboot -k testkernel 2233 2234 To just build a kernel when you know that it won't mess you up 2235 -------------------------------------------------------------- 2236 This assumes you are already running a CURRENT system. Replace 2237 ${arch} with the architecture of your machine (e.g. "i386", 2238 "arm", "amd64", "ia64", "pc98", "sparc64", "powerpc", "mips", etc). 2239 2240 cd src/sys/${arch}/conf 2241 config KERNEL_NAME_HERE 2242 cd ../compile/KERNEL_NAME_HERE 2243 make depend 2244 make 2245 make install 2246 2247 If this fails, go to the "To build a kernel" section. 2248 2249 To rebuild everything and install it on the current system. 2250 ----------------------------------------------------------- 2251 # Note: sometimes if you are running current you gotta do more than 2252 # is listed here if you are upgrading from a really old current. 2253 2254 <make sure you have good level 0 dumps> 2255 make buildworld 2256 make kernel KERNCONF=YOUR_KERNEL_HERE 2257 [1] 2258 <reboot in single user> [3] 2259 mergemaster -p [5] 2260 make installworld 2261 mergemaster -i [4] 2262 make delete-old [6] 2263 <reboot> 2264 2265 To cross-install current onto a separate partition 2266 -------------------------------------------------- 2267 # In this approach we use a separate partition to hold 2268 # current's root, 'usr', and 'var' directories. A partition 2269 # holding "/", "/usr" and "/var" should be about 2GB in 2270 # size. 2271 2272 <make sure you have good level 0 dumps> 2273 <boot into -stable> 2274 make buildworld 2275 make buildkernel KERNCONF=YOUR_KERNEL_HERE 2276 <maybe newfs current's root partition> 2277 <mount current's root partition on directory ${CURRENT_ROOT}> 2278 make installworld DESTDIR=${CURRENT_ROOT} 2279 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 2280 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 2281 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 2282 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 2283 <reboot into current> 2284 <do a "native" rebuild/install as described in the previous section> 2285 <maybe install compatibility libraries from ports/misc/compat*> 2286 <reboot> 2287 2288 2289 To upgrade in-place from stable to current 2290 ---------------------------------------------- 2291 <make sure you have good level 0 dumps> 2292 make buildworld [9] 2293 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 2294 [1] 2295 <reboot in single user> [3] 2296 mergemaster -p [5] 2297 make installworld 2298 mergemaster -i [4] 2299 make delete-old [6] 2300 <reboot> 2301 2302 Make sure that you've read the UPDATING file to understand the 2303 tweaks to various things you need. At this point in the life 2304 cycle of current, things change often and you are on your own 2305 to cope. The defaults can also change, so please read ALL of 2306 the UPDATING entries. 2307 2308 Also, if you are tracking -current, you must be subscribed to 2309 freebsd-current@freebsd.org. Make sure that before you update 2310 your sources that you have read and understood all the recent 2311 messages there. If in doubt, please track -stable which has 2312 much fewer pitfalls. 2313 2314 [1] If you have third party modules, such as vmware, you 2315 should disable them at this point so they don't crash your 2316 system on reboot. 2317 2318 [3] From the bootblocks, boot -s, and then do 2319 fsck -p 2320 mount -u / 2321 mount -a 2322 cd src 2323 adjkerntz -i # if CMOS is wall time 2324 Also, when doing a major release upgrade, it is required that 2325 you boot into single user mode to do the installworld. 2326 2327 [4] Note: This step is non-optional. Failure to do this step 2328 can result in a significant reduction in the functionality of the 2329 system. Attempting to do it by hand is not recommended and those 2330 that pursue this avenue should read this file carefully, as well 2331 as the archives of freebsd-current and freebsd-hackers mailing lists 2332 for potential gotchas. The -U option is also useful to consider. 2333 See mergemaster(8) for more information. 2334 2335 [5] Usually this step is a noop. However, from time to time 2336 you may need to do this if you get unknown user in the following 2337 step. It never hurts to do it all the time. You may need to 2338 install a new mergemaster (cd src/usr.sbin/mergemaster && make 2339 install) after the buildworld before this step if you last updated 2340 from current before 20130425 or from -stable before 20130430. 2341 2342 [6] This only deletes old files and directories. Old libraries 2343 can be deleted by "make delete-old-libs", but you have to make 2344 sure that no program is using those libraries anymore. 2345 2346 [8] In order to have a kernel that can run the 4.x binaries needed to 2347 do an installworld, you must include the COMPAT_FREEBSD4 option in 2348 your kernel. Failure to do so may leave you with a system that is 2349 hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 is 2350 required to run the 5.x binaries on more recent kernels. And so on 2351 for COMPAT_FREEBSD6 and COMPAT_FREEBSD7. 2352 2353 Make sure that you merge any new devices from GENERIC since the 2354 last time you updated your kernel config file. 2355 2356 [9] When checking out sources, you must include the -P flag to have 2357 cvs prune empty directories. 2358 2359 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 2360 "?=" instead of the "=" assignment operator, so that buildworld can 2361 override the CPUTYPE if it needs to. 2362 2363 MAKEOBJDIRPREFIX must be defined in an environment variable, and 2364 not on the command line, or in /etc/make.conf. buildworld will 2365 warn if it is improperly defined. 2366FORMAT: 2367 2368This file contains a list, in reverse chronological order, of major 2369breakages in tracking -current. It is not guaranteed to be a complete 2370list of such breakages, and only contains entries since October 10, 2007. 2371If you need to see UPDATING entries from before that date, you will need 2372to fetch an UPDATING file from an older FreeBSD release. 2373 2374Copyright information: 2375 2376Copyright 1998-2009 M. Warner Losh. All Rights Reserved. 2377 2378Redistribution, publication, translation and use, with or without 2379modification, in full or in part, in any form or format of this 2380document are permitted without further permission from the author. 2381 2382THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 2383IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 2384WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 2385DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 2386INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2387(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2388SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2389HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 2390STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 2391IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2392POSSIBILITY OF SUCH DAMAGE. 2393 2394Contact Warner Losh if you have any questions about your use of 2395this document. 2396 2397$FreeBSD: releng/10.1/UPDATING 301050 2016-05-31 16:55:41Z glebius $ 2398