UPDATING revision 195699
1Updating Information for FreeBSD current users 2 3This file is maintained and copyrighted by M. Warner Losh 4<imp@village.org>. See end of file for further details. For commonly 5done items, please see the COMMON ITEMS: section later in the file. 6 7Items affecting the ports and packages system can be found in 8/usr/ports/UPDATING. Please read that file before running 9portupgrade. 10 11NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW: 12 FreeBSD 8.x has many debugging features turned on, in 13 both the kernel and userland. These features attempt to detect 14 incorrect use of system primitives, and encourage loud failure 15 through extra sanity checking and fail stop semantics. They 16 also substantially impact system performance. If you want to 17 do performance measurement, benchmarking, and optimization, 18 you'll want to turn them off. This includes various WITNESS- 19 related kernel options, INVARIANTS, malloc debugging flags 20 in userland, and various verbose features in the kernel. Many 21 developers choose to disable these features on build machines 22 to maximize performance. (To disable malloc debugging, run 23 ln -s aj /etc/malloc.conf.) 24 2520090714: 26 Due to changes in the implementation of virtual network stack 27 support, all network-related kernel modules must be recompiled. 28 As this change breaks the ABI, bump __FreeBSD_version to 800104. 29 3020090713: 31 The TOE interface to the TCP syncache has been modified to remove struct 32 tcpopt (<netinet/tcp_var.h>) from the ABI of the network stack. The 33 cxgb driver is the only TOE consumer affected by this change, and needs 34 to be recompiled along with the kernel. As this change breaks the ABI, 35 bump __FreeBSD_version to 800103. 36 3720090712: 38 Padding has been added to struct tcpcb, sackhint and tcpstat in 39 <netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst 40 maintainig the ABI. However, this change breaks the ABI, so bump 41 __FreeBSD_version to 800102. User space tools that rely on the size of 42 any of these structs (e.g. sockstat) need to be recompiled. 43 4420090630: 45 The NFS_LEGACYRPC option has been removed along with the old 46 kernel RPC implementation that this option selected. Kernel 47 configurations may need to be adjusted. 48 4920090629: 50 The network interface device nodes at /dev/net/<interface> have 51 been removed. All ioctl operations can be performed the normal 52 way using routing sockets. The kqueue functionality can 53 generally be replaced with routing sockets. 54 5520090628: 56 The documentation from the FreeBSD Documentation Project 57 (Handbook, FAQ, etc.) is now installed via packages by 58 sysinstall(8) and under the /usr/local/share/doc/freebsd 59 directory instead of /usr/share/doc. 60 6120090624: 62 The ABI of various structures related to the SYSV IPC API have 63 been changed. As a result, the COMPAT_FREEBSD[456] kernel 64 options now all require COMPAT_FREEBSD7. Bump __FreeBSD_version 65 to 800100. 66 6720090622: 68 Layout of struct vnet has changed as routing related variables 69 were moved to their own Vimage module. Modules need to be 70 recompiled. Bump __FreeBSD_version to 800099. 71 7220090619: 73 NGROUPS_MAX and NGROUPS have been increased from 16 to 1023 74 and 1024 respectively. As long as no more than 16 groups per 75 process are used, no changes should be visible. When more 76 than 16 groups are used, old binaries may fail if they call 77 getgroups() or getgrouplist() with statically sized storage. 78 Recompiling will work around this, but applications should be 79 modified to use dynamically allocated storage for group arrays 80 as POSIX.1-2008 does not cap an implementation's number of 81 supported groups at NGROUPS_MAX+1 as previous versions did. 82 83 NFS and portalfs mounts may also be affected as the list of 84 groups is truncated to 16. Users of NFS who use more than 16 85 groups, should take care that negative group permissions are not 86 used on the exported file systems as they will not be reliable 87 unless a GSSAPI based authentication method is used. 88 8920090616: 90 The compiling option ADAPTIVE_LOCKMGRS has been introduced. 91 This option compiles in the support for adaptive spinning for lockmgrs 92 which want to enable it. The lockinit() function now accepts the 93 flag LK_ADAPTIVE in order to make the lock object subject to 94 adaptive spinning when both held in write and read mode. 95 9620090613: 97 The layout of the structure returned by IEEE80211_IOC_STA_INFO 98 has changed. User applications that use this ioctl need to be 99 rebuilt. 100 10120090611: 102 The layout of struct thread has changed. Kernel and modules 103 need to be rebuilt. 104 10520090608: 106 The layout of structs ifnet, domain, protosw and vnet_net has 107 changed. Kernel modules need to be rebuilt. 108 Bump __FreeBSD_version to 800097. 109 11020090602: 111 window(1) has been removed from the base system. It can now be 112 installed from ports. The port is called misc/window. 113 11420090601: 115 The way we are storing and accessing `routing table' entries 116 has changed. Programs reading the FIB, like netstat, need to 117 be re-compiled. 118 11920090601: 120 A new netisr implementation has been added for FreeBSD 8. Network 121 file system modules, such as igmp, ipdivert, and others, should be 122 rebuilt. 123 Bump __FreeBSD_version to 800096. 124 12520090530: 126 Remove the tunable/sysctl debug.mpsafevfs as its initial purpose 127 is no more valid. 128 12920090530: 130 Add VOP_ACCESSX(9). File system modules need to be rebuilt. 131 Bump __FreeBSD_version to 800094. 132 13320090529: 134 Add mnt_xflag field to 'struct mount'. File system modules 135 need to be rebuilt. 136 Bump __FreeBSD_version to 800093. 137 13820090528: 139 The compiling option ADAPTIVE_SX has been retired while it has been 140 introduced the option NO_ADAPTIVE_SX which handles the reversed logic. 141 The KPI for sx_init_flags() changes as accepting flags: 142 SX_ADAPTIVESPIN flag has been retired while the SX_NOADAPTIVE flag 143 has been introduced in order to handle the reversed logic. 144 Bump __FreeBSD_version to 800092. 145 14620090527: 147 Add support for hierarchical jails. Remove global securelevel. 148 Bump __FreeBSD_version to 800091. 149 15020090523: 151 The layout of struct vnet_net has changed, therefore modules 152 need to be rebuilt. 153 Bump __FreeBSD_version to 800090. 154 15520090523: 156 The newly imported zic(8) produces a new format in the 157 output. Please run tzsetup(8) to install the newly created 158 data to /etc/localtime. 159 16020090520: 161 The sysctl tree for the usb stack has renamed from hw.usb2.* to 162 hw.usb.* and is now consistent again with previous releases. 163 16420090520: 165 802.11 monitor mode support was revised and driver api's 166 were changed. Drivers dependent on net80211 now support 167 DLT_IEEE802_11_RADIO instead of DLT_IEEE802_11. No 168 user-visible data structures were changed but applications 169 that use DLT_IEEE802_11 may require changes. 170 Bump __FreeBSD_version to 800088. 171 17220090430: 173 The layout of the following structs has changed: sysctl_oid, 174 socket, ifnet, inpcbinfo, tcpcb, syncache_head, vnet_inet, 175 vnet_inet6 and vnet_ipfw. Most modules need to be rebuild or 176 panics may be experienced. World rebuild is required for 177 correctly checking networking state from userland. 178 Bump __FreeBSD_version to 800085. 179 18020090429: 181 MLDv2 and Source-Specific Multicast (SSM) have been merged 182 to the IPv6 stack. VIMAGE hooks are in but not yet used. 183 The implementation of SSM within FreeBSD's IPv6 stack closely 184 follows the IPv4 implementation. 185 186 For kernel developers: 187 188 * The most important changes are that the ip6_output() and 189 ip6_input() paths no longer take the IN6_MULTI_LOCK, 190 and this lock has been downgraded to a non-recursive mutex. 191 192 * As with the changes to the IPv4 stack to support SSM, filtering 193 of inbound multicast traffic must now be performed by transport 194 protocols within the IPv6 stack. This does not apply to TCP and 195 SCTP, however, it does apply to UDP in IPv6 and raw IPv6. 196 197 * The KPIs used by IPv6 multicast are similar to those used by 198 the IPv4 stack, with the following differences: 199 * im6o_mc_filter() is analogous to imo_multicast_filter(). 200 * The legacy KAME entry points in6_joingroup and in6_leavegroup() 201 are shimmed to in6_mc_join() and in6_mc_leave() respectively. 202 * IN6_LOOKUP_MULTI() has been deprecated and removed. 203 * IPv6 relies on MLD for the DAD mechanism. KAME's internal KPIs 204 for MLDv1 have an additional 'timer' argument which is used to 205 jitter the initial membership report for the solicited-node 206 multicast membership on-link. 207 * This is not strictly needed for MLDv2, which already jitters 208 its report transmissions. However, the 'timer' argument is 209 preserved in case MLDv1 is active on the interface. 210 211 * The KAME linked-list based IPv6 membership implementation has 212 been refactored to use a vector similar to that used by the IPv4 213 stack. 214 Code which maintains a list of its own multicast memberships 215 internally, e.g. carp, has been updated to reflect the new 216 semantics. 217 218 * There is a known Lock Order Reversal (LOR) due to in6_setscope() 219 acquiring the IF_AFDATA_LOCK and being called within ip6_output(). 220 Whilst MLDv2 tries to avoid this otherwise benign LOR, it is an 221 implementation constraint which needs to be addressed in HEAD. 222 223 For application developers: 224 225 * The changes are broadly similar to those made for the IPv4 226 stack. 227 228 * The use of IPv4 and IPv6 multicast socket options on the same 229 socket, using mapped addresses, HAS NOT been tested or supported. 230 231 * There are a number of issues with the implementation of various 232 IPv6 multicast APIs which need to be resolved in the API surface 233 before the implementation is fully compatible with KAME userland 234 use, and these are mostly to do with interface index treatment. 235 236 * The literature available discusses the use of either the delta / ASM 237 API with setsockopt(2)/getsockopt(2), or the full-state / ASM API 238 using setsourcefilter(3)/getsourcefilter(3). For more information 239 please refer to RFC 3768, 'Socket Interface Extensions for 240 Multicast Source Filters'. 241 242 * Applications which use the published RFC 3678 APIs should be fine. 243 244 For systems administrators: 245 246 * The mtest(8) utility has been refactored to support IPv6, in 247 addition to IPv4. Interface addresses are no longer accepted 248 as arguments, their names must be used instead. The utility 249 will map the interface name to its first IPv4 address as 250 returned by getifaddrs(3). 251 252 * The ifmcstat(8) utility has also been updated to print the MLDv2 253 endpoint state and source filter lists via sysctl(3). 254 255 * The net.inet6.ip6.mcast.loop sysctl may be tuned to 0 to disable 256 loopback of IPv6 multicast datagrams by default; it defaults to 1 257 to preserve the existing behaviour. Disabling multicast loopback is 258 recommended for optimal system performance. 259 260 * The IPv6 MROUTING code has been changed to examine this sysctl 261 instead of attempting to perform a group lookup before looping 262 back forwarded datagrams. 263 264 Bump __FreeBSD_version to 800084. 265 26620090422: 267 Implement low-level Bluetooth HCI API. 268 Bump __FreeBSD_version to 800083. 269 27020090419: 271 The layout of struct malloc_type, used by modules to register new 272 memory allocation types, has changed. Most modules will need to 273 be rebuilt or panics may be experienced. 274 Bump __FreeBSD_version to 800081. 275 27620090415: 277 Anticipate overflowing inp_flags - add inp_flags2. 278 This changes most offsets in inpcb, so checking v4 connection 279 state will require a world rebuild. 280 Bump __FreeBSD_version to 800080. 281 28220090415: 283 Add an llentry to struct route and struct route_in6. Modules 284 embedding a struct route will need to be recompiled. 285 Bump __FreeBSD_version to 800079. 286 28720090414: 288 The size of rt_metrics_lite and by extension rtentry has changed. 289 Networking administration apps will need to be recompiled. 290 The route command now supports show as an alias for get, weighting 291 of routes, sticky and nostick flags to alter the behavior of stateful 292 load balancing. 293 Bump __FreeBSD_version to 800078. 294 29520090408: 296 Do not use Giant for kbdmux(4) locking. This is wrong and 297 apparently causing more problems than it solves. This will 298 re-open the issue where interrupt handlers may race with 299 kbdmux(4) in polling mode. Typical symptoms include (but 300 not limited to) duplicated and/or missing characters when 301 low level console functions (such as gets) are used while 302 interrupts are enabled (for example geli password prompt, 303 mountroot prompt etc.). Disabling kbdmux(4) may help. 304 30520090407: 306 The size of structs vnet_net, vnet_inet and vnet_ipfw has changed; 307 kernel modules referencing any of the above need to be recompiled. 308 Bump __FreeBSD_version to 800075. 309 31020090320: 311 GEOM_PART has become the default partition slicer for storage devices, 312 replacing GEOM_MBR, GEOM_BSD, GEOM_PC98 and GEOM_GPT slicers. It 313 introduces some changes: 314 315 MSDOS/EBR: the devices created from MSDOS extended partition entries 316 (EBR) can be named differently than with GEOM_MBR and are now symlinks 317 to devices with offset-based names. fstabs may need to be modified. 318 319 BSD: the "geometry does not match label" warning is harmless in most 320 cases but it points to problems in file system misalignment with 321 disk geometry. The "c" partition is now implicit, covers the whole 322 top-level drive and cannot be (mis)used by users. 323 324 General: Kernel dumps are now not allowed to be written to devices 325 whose partition types indicate they are meant to be used for file 326 systems (or, in case of MSDOS partitions, as something else than 327 the "386BSD" type). 328 329 Most of these changes date approximately from 200812. 330 33120090319: 332 The uscanner(4) driver has been removed from the kernel. This follows 333 Linux removing theirs in 2.6 and making libusb the default interface 334 (supported by sane). 335 33620090319: 337 The multicast forwarding code has been cleaned up. netstat(1) 338 only relies on KVM now for printing bandwidth upcall meters. 339 The IPv4 and IPv6 modules are split into ip_mroute_mod and 340 ip6_mroute_mod respectively. The config(5) options for statically 341 compiling this code remain the same, i.e. 'options MROUTING'. 342 34320090315: 344 Support for the IFF_NEEDSGIANT network interface flag has been 345 removed, which means that non-MPSAFE network device drivers are no 346 longer supported. In particular, if_ar, if_sr, and network device 347 drivers from the old (legacy) USB stack can no longer be built or 348 used. 349 35020090313: 351 POSIX.1 Native Language Support (NLS) has been enabled in libc and 352 a bunch of new language catalog files have also been added. 353 This means that some common libc messages are now localized and 354 they depend on the LC_MESSAGES environmental variable. 355 35620090313: 357 The k8temp(4) driver has been renamed to amdtemp(4) since 358 support for K10 and K11 CPU families was added. 359 36020090309: 361 IGMPv3 and Source-Specific Multicast (SSM) have been merged 362 to the IPv4 stack. VIMAGE hooks are in but not yet used. 363 364 For kernel developers, the most important changes are that the 365 ip_output() and ip_input() paths no longer take the IN_MULTI_LOCK(), 366 and this lock has been downgraded to a non-recursive mutex. 367 368 Transport protocols (UDP, Raw IP) are now responsible for filtering 369 inbound multicast traffic according to group membership and source 370 filters. The imo_multicast_filter() KPI exists for this purpose. 371 Transports which do not use multicast (SCTP, TCP) already reject 372 multicast by default. Forwarding and receive performance may improve 373 as a mutex acquisition is no longer needed in the ip_input() 374 low-level input path. in_addmulti() and in_delmulti() are shimmed 375 to new KPIs which exist to support SSM in-kernel. 376 377 For application developers, it is recommended that loopback of 378 multicast datagrams be disabled for best performance, as this 379 will still cause the lock to be taken for each looped-back 380 datagram transmission. The net.inet.ip.mcast.loop sysctl may 381 be tuned to 0 to disable loopback by default; it defaults to 1 382 to preserve the existing behaviour. 383 384 For systems administrators, to obtain best performance with 385 multicast reception and multiple groups, it is always recommended 386 that a card with a suitably precise hash filter is used. Hash 387 collisions will still result in the lock being taken within the 388 transport protocol input path to check group membership. 389 390 If deploying FreeBSD in an environment with IGMP snooping switches, 391 it is recommended that the net.inet.igmp.sendlocal sysctl remain 392 enabled; this forces 224.0.0.0/24 group membership to be announced 393 via IGMP. 394 395 The size of 'struct igmpstat' has changed; netstat needs to be 396 recompiled to reflect this. 397 Bump __FreeBSD_version to 800070. 398 39920090309: 400 libusb20.so.1 is now installed as libusb.so.1 and the ports system 401 updated to use it. This requires a buildworld/installworld in order to 402 update the library and dependencies (usbconfig, etc). Its advisable to 403 rebuild all ports which uses libusb. More specific directions are given 404 in the ports collection UPDATING file. Any /etc/libmap.conf entries for 405 libusb are no longer required and can be removed. 406 40720090302: 408 A workaround is committed to allow the creation of System V shared 409 memory segment of size > 2 GB on the 64-bit architectures. 410 Due to a limitation of the existing ABI, the shm_segsz member 411 of the struct shmid_ds, returned by shmctl(IPC_STAT) call is 412 wrong for large segments. Note that limits must be explicitly 413 raised to allow such segments to be created. 414 41520090301: 416 The layout of struct ifnet has changed, requiring a rebuild of all 417 network device driver modules. 418 41920090227: 420 The /dev handling for the new USB stack has changed, a 421 buildworld/installworld is required for libusb20. 422 42320090223: 424 The new USB2 stack has now been permanently moved in and all kernel and 425 module names reverted to their previous values (eg, usb, ehci, ohci, 426 ums, ...). The old usb stack can be compiled in by prefixing the name 427 with the letter 'o', the old usb modules have been removed. 428 Updating entry 20090216 for xorg and 20090215 for libmap may still 429 apply. 430 43120090217: 432 The rc.conf(5) option if_up_delay has been renamed to 433 defaultroute_delay to better reflect its purpose. If you have 434 customized this setting in /etc/rc.conf you need to update it to 435 use the new name. 436 43720090216: 438 xorg 7.4 wants to configure its input devices via hald which does not 439 yet work with USB2. If the keyboard/mouse does not work in xorg then 440 add 441 Option "AllowEmptyInput" "off" 442 to your ServerLayout section. This will cause X to use the configured 443 kbd and mouse sections from your xorg.conf. 444 44520090215: 446 The GENERIC kernels for all architectures now default to the new USB2 447 stack. No kernel config options or code have been removed so if a 448 problem arises please report it and optionally revert to the old USB 449 stack. If you are loading USB kernel modules or have a custom kernel 450 that includes GENERIC then ensure that usb names are also changed over, 451 eg uftdi -> usb2_serial_ftdi. 452 453 Older programs linked against the ports libusb 0.1 need to be 454 redirected to the new stack's libusb20. /etc/libmap.conf can 455 be used for this: 456 # Map old usb library to new one for usb2 stack 457 libusb-0.1.so.8 libusb20.so.1 458 45920090203: 460 The ichsmb(4) driver has been changed to require SMBus slave 461 addresses be left-justified (xxxxxxx0b) rather than right-justified. 462 All of the other SMBus controller drivers require left-justified 463 slave addresses, so this change makes all the drivers provide the 464 same interface. 465 46620090201: 467 INET6 statistics (struct ip6stat) was updated. 468 netstat(1) needs to be recompiled. 469 47020090119: 471 NTFS has been removed from GENERIC kernel on amd64 to match 472 GENERIC on i386. Should not cause any issues since mount_ntfs(8) 473 will load ntfs.ko module automatically when NTFS support is 474 actually needed, unless ntfs.ko is not installed or security 475 level prohibits loading kernel modules. If either is the case, 476 "options NTFS" has to be added into kernel config. 477 47820090115: 479 TCP Appropriate Byte Counting (RFC 3465) support added to kernel. 480 New field in struct tcpcb breaks ABI, so bump __FreeBSD_version to 481 800061. User space tools that rely on the size of struct tcpcb in 482 tcp_var.h (e.g. sockstat) need to be recompiled. 483 48420081225: 485 ng_tty(4) module updated to match the new TTY subsystem. 486 Due to API change, user-level applications must be updated. 487 New API support added to mpd5 CVS and expected to be present 488 in next mpd5.3 release. 489 49020081219: 491 With __FreeBSD_version 800060 the makefs tool is part of 492 the base system (it was a port). 493 49420081216: 495 The afdata and ifnet locks have been changed from mutexes to 496 rwlocks, network modules will need to be re-compiled. 497 49820081214: 499 __FreeBSD_version 800059 incorporates the new arp-v2 rewrite. 500 RTF_CLONING, RTF_LLINFO and RTF_WASCLONED flags are eliminated. 501 The new code reduced struct rtentry{} by 16 bytes on 32-bit 502 architecture and 40 bytes on 64-bit architecture. The userland 503 applications "arp" and "ndp" have been updated accordingly. 504 The output from "netstat -r" shows only routing entries and 505 none of the L2 information. 506 50720081130: 508 __FreeBSD_version 800057 marks the switchover from the 509 binary ath hal to source code. Users must add the line: 510 511 options AH_SUPPORT_AR5416 512 513 to their kernel config files when specifying: 514 515 device ath_hal 516 517 The ath_hal module no longer exists; the code is now compiled 518 together with the driver in the ath module. It is now 519 possible to tailor chip support (i.e. reduce the set of chips 520 and thereby the code size); consult ath_hal(4) for details. 521 52220081121: 523 __FreeBSD_version 800054 adds memory barriers to 524 <machine/atomic.h>, new interfaces to ifnet to facilitate 525 multiple hardware transmit queues for cards that support 526 them, and a lock-less ring-buffer implementation to 527 enable drivers to more efficiently manage queueing of 528 packets. 529 53020081117: 531 A new version of ZFS (version 13) has been merged to -HEAD. 532 This version has zpool attribute "listsnapshots" off by 533 default, which means "zfs list" does not show snapshots, 534 and is the same as Solaris behavior. 535 53620081028: 537 dummynet(4) ABI has changed. ipfw(8) needs to be recompiled. 538 53920081009: 540 The uhci, ohci, ehci and slhci USB Host controller drivers have 541 been put into separate modules. If you load the usb module 542 separately through loader.conf you will need to load the 543 appropriate *hci module as well. E.g. for a UHCI-based USB 2.0 544 controller add the following to loader.conf: 545 546 uhci_load="YES" 547 ehci_load="YES" 548 54920081009: 550 The ABI used by the PMC toolset has changed. Please keep 551 userland (libpmc(3)) and the kernel module (hwpmc(4)) in 552 sync. 553 55420080820: 555 The TTY subsystem of the kernel has been replaced by a new 556 implementation, which provides better scalability and an 557 improved driver model. Most common drivers have been migrated to 558 the new TTY subsystem, while others have not. The following 559 drivers have not yet been ported to the new TTY layer: 560 561 PCI/ISA: 562 cy, digi, rc, rp, sio 563 564 USB: 565 ubser, ucycom 566 567 Line disciplines: 568 ng_h4, ng_tty, ppp, sl, snp 569 570 Adding these drivers to your kernel configuration file shall 571 cause compilation to fail. 572 57320080818: 574 ntpd has been upgraded to 4.2.4p5. 575 57620080801: 577 OpenSSH has been upgraded to 5.1p1. 578 579 For many years, FreeBSD's version of OpenSSH preferred DSA 580 over RSA for host and user authentication keys. With this 581 upgrade, we've switched to the vendor's default of RSA over 582 DSA. This may cause upgraded clients to warn about unknown 583 host keys even for previously known hosts. Users should 584 follow the usual procedure for verifying host keys before 585 accepting the RSA key. 586 587 This can be circumvented by setting the "HostKeyAlgorithms" 588 option to "ssh-dss,ssh-rsa" in ~/.ssh/config or on the ssh 589 command line. 590 591 Please note that the sequence of keys offered for 592 authentication has been changed as well. You may want to 593 specify IdentityFile in a different order to revert this 594 behavior. 595 59620080713: 597 The sio(4) driver has been removed from the i386 and amd64 598 kernel configuration files. This means uart(4) is now the 599 default serial port driver on those platforms as well. 600 601 To prevent collisions with the sio(4) driver, the uart(4) driver 602 uses different names for its device nodes. This means the 603 onboard serial port will now most likely be called "ttyu0" 604 instead of "ttyd0". You may need to reconfigure applications to 605 use the new device names. 606 607 When using the serial port as a boot console, be sure to update 608 /boot/device.hints and /etc/ttys before booting the new kernel. 609 If you forget to do so, you can still manually specify the hints 610 at the loader prompt: 611 612 set hint.uart.0.at="isa" 613 set hint.uart.0.port="0x3F8" 614 set hint.uart.0.flags="0x10" 615 set hint.uart.0.irq="4" 616 boot -s 617 61820080609: 619 The gpt(8) utility has been removed. Use gpart(8) to partition 620 disks instead. 621 62220080603: 623 The version that Linuxulator emulates was changed from 2.4.2 624 to 2.6.16. If you experience any problems with Linux binaries 625 please try to set sysctl compat.linux.osrelease to 2.4.2 and 626 if it fixes the problem contact emulation mailing list. 627 62820080525: 629 ISDN4BSD (I4B) was removed from the src tree. You may need to 630 update a your kernel configuration and remove relevant entries. 631 63220080509: 633 I have checked in code to support multiple routing tables. 634 See the man pages setfib(1) and setfib(2). 635 This is a hopefully backwards compatible version, 636 but to make use of it you need to compile your kernel 637 with options ROUTETABLES=2 (or more up to 16). 638 63920080420: 640 The 802.11 wireless support was redone to enable multi-bss 641 operation on devices that are capable. The underlying device 642 is no longer used directly but instead wlanX devices are 643 cloned with ifconfig. This requires changes to rc.conf files. 644 For example, change: 645 ifconfig_ath0="WPA DHCP" 646 to 647 wlans_ath0=wlan0 648 ifconfig_wlan0="WPA DHCP" 649 see rc.conf(5) for more details. In addition, mergemaster of 650 /etc/rc.d is highly recommended. Simultaneous update of userland 651 and kernel wouldn't hurt either. 652 653 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 654 modules were merged into the base wlan module. All references 655 to these modules (e.g. in kernel config files) must be removed. 656 65720080408: 658 psm(4) has gained write(2) support in native operation level. 659 Arbitrary commands can be written to /dev/psm%d and status can 660 be read back from it. Therefore, an application is responsible 661 for status validation and error recovery. It is a no-op in 662 other operation levels. 663 66420080312: 665 Support for KSE threading has been removed from the kernel. To 666 run legacy applications linked against KSE libmap.conf may 667 be used. The following libmap.conf may be used to ensure 668 compatibility with any prior release: 669 670 libpthread.so.1 libthr.so.1 671 libpthread.so.2 libthr.so.2 672 libkse.so.3 libthr.so.3 673 67420080301: 675 The layout of struct vmspace has changed. This affects libkvm 676 and any executables that link against libkvm and use the 677 kvm_getprocs() function. In particular, but not exclusively, 678 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 679 The effects are minimal, but it's advisable to upgrade world 680 nonetheless. 681 68220080229: 683 The latest em driver no longer has support in it for the 684 82575 adapter, this is now moved to the igb driver. The 685 split was done to make new features that are incompatible 686 with older hardware easier to do. 687 68820080220: 689 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 690 likewise the kernel option is now GEOM_LINUX_LVM. 691 69220080211: 693 The default NFS mount mode has changed from UDP to TCP for 694 increased reliability. If you rely on (insecurely) NFS 695 mounting across a firewall you may need to update your 696 firewall rules. 697 69820080208: 699 Belatedly note the addition of m_collapse for compacting 700 mbuf chains. 701 70220080126: 703 The fts(3) structures have been changed to use adequate 704 integer types for their members and so to be able to cope 705 with huge file trees. The old fts(3) ABI is preserved 706 through symbol versioning in libc, so third-party binaries 707 using fts(3) should still work, although they will not take 708 advantage of the extended types. At the same time, some 709 third-party software might fail to build after this change 710 due to unportable assumptions made in its source code about 711 fts(3) structure members. Such software should be fixed 712 by its vendor or, in the worst case, in the ports tree. 713 FreeBSD_version 800015 marks this change for the unlikely 714 case that a portable fix is impossible. 715 71620080123: 717 To upgrade to -current after this date, you must be running 718 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 719 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 720 72120071128: 722 The ADAPTIVE_GIANT kernel option has been retired because its 723 functionality is the default now. 724 72520071118: 726 The AT keyboard emulation of sunkbd(4) has been turned on 727 by default. In order to make the special symbols of the Sun 728 keyboards driven by sunkbd(4) work under X these now have 729 to be configured the same way as Sun USB keyboards driven 730 by ukbd(4) (which also does AT keyboard emulation), f.e.: 731 732 Option "XkbLayout" "us" 733 Option "XkbRules" "xorg" 734 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 735 73620071024: 737 It has been decided that it is desirable to provide ABI 738 backwards compatibility to the FreeBSD 4/5/6 versions of the 739 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 740 broken with the introduction of PCI domain support (see the 741 20070930 entry). Unfortunately, this required the ABI of 742 PCIOCGETCONF to be broken again in order to be able to 743 provide backwards compatibility to the old version of that 744 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 745 again. As for prominent ports this affects neither pciutils 746 nor xorg-server this time, the hal port needs to be rebuilt 747 however. 748 74920071020: 750 The misnamed kthread_create() and friends have been renamed 751 to kproc_create() etc. Many of the callers already 752 used kproc_start().. 753 I will return kthread_create() and friends in a while 754 with implementations that actually create threads, not procs. 755 Renaming corresponds with version 800002. 756 75720071010: 758 RELENG_7 branched. 759 76020071009: 761 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 762 WITHOUT_LIBTHR are set. 763 76420070930: 765 The PCI code has been made aware of PCI domains. This means that 766 the location strings as used by pciconf(8) etc are now in the 767 following format: pci<domain>:<bus>:<device>[:<function>]. It 768 also means that consumers of <sys/pciio.h> potentially need to 769 be recompiled; this includes the hal and xorg-server ports. 770 77120070928: 772 The caching daemon (cached) was renamed to nscd. nscd.conf 773 configuration file should be used instead of cached.conf and 774 nscd_enable, nscd_pidfile and nscd_flags options should be used 775 instead of cached_enable, cached_pidfile and cached_flags in 776 rc.conf. 777 77820070921: 779 The getfacl(1) utility now prints owning user and group name 780 instead of owning uid and gid in the three line comment header. 781 This is the same behavior as getfacl(1) on Solaris and Linux. 782 78320070704: 784 The new IPsec code is now compiled in using the IPSEC option. The 785 IPSEC option now requires "device crypto" be defined in your kernel 786 configuration. The FAST_IPSEC kernel option is now deprecated. 787 78820070702: 789 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 790 note the changed syntax - keep state is now on by default. Also 791 note the fact that ftp-proxy(8) has been changed from bottom up and 792 has been moved from libexec to usr/sbin. Changes in the ALTQ 793 handling also affect users of IPFW's ALTQ capabilities. 794 79520070701: 796 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 797 only IPsec supported by FreeBSD. The new IPsec stack 798 supports both IPv4 and IPv6. The kernel option will change 799 after the code changes have settled in. For now the kernel 800 option IPSEC is deprecated and FAST_IPSEC is the only option, that 801 will change after some settling time. 802 80320070701: 804 The wicontrol(8) utility has been removed from the base system. wi(4) 805 cards should be configured using ifconfig(8), see the man page for more 806 information. 807 80820070612: 809 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 810 instead of the nve(4) driver. Please update your configuration 811 accordingly. 812 81320070612: 814 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 815 database if it is missing or older than the aliases file. If 816 desired, set the new rc.conf option sendmail_rebuild_aliases 817 to "YES" to restore that functionality. 818 81920070612: 820 The IPv4 multicast socket code has been considerably modified, and 821 moved to the file sys/netinet/in_mcast.c. Initial support for the 822 RFC 3678 Source-Specific Multicast Socket API has been added to 823 the IPv4 network stack. 824 825 Strict multicast and broadcast reception is now the default for 826 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 827 has now been removed. 828 829 The RFC 1724 hack for interface selection has been removed; the use 830 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 831 been added to replace it. Consumers such as routed will soon be 832 updated to reflect this. 833 834 These changes affect users who are running routed(8) or rdisc(8) 835 from the FreeBSD base system on point-to-point or unnumbered 836 interfaces. 837 83820070610: 839 The net80211 layer has changed significantly and all wireless 840 drivers that depend on it need to be recompiled. Further these 841 changes require that any program that interacts with the wireless 842 support in the kernel be recompiled; this includes: ifconfig, 843 wpa_supplicant, hostapd, and wlanstats. Users must also, for 844 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 845 if they use modules for wireless support. These modules implement 846 scanning support for station and ap modes, respectively. Failure 847 to load the appropriate module before marking a wireless interface 848 up will result in a message to the console and the device not 849 operating properly. 850 85120070610: 852 The pam_nologin(8) module ceases to provide an authentication 853 function and starts providing an account management function. 854 Consequent changes to /etc/pam.d should be brought in using 855 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 856 need manual editing as follows. Locate this line (or similar): 857 858 auth required pam_nologin.so no_warn 859 860 and change it according to this example: 861 862 account required pam_nologin.so no_warn 863 864 That is, the first word needs to be changed from "auth" to 865 "account". The new line can be moved to the account section 866 within the file for clarity. Not updating pam.conf(5) files 867 will result in nologin(5) ignored by the respective services. 868 86920070529: 870 The ether_ioctl() function has been synchronized with ioctl(2) 871 and ifnet.if_ioctl. Due to that, the size of one of its arguments 872 has changed on 64-bit architectures. All kernel modules using 873 ether_ioctl() need to be rebuilt on such architectures. 874 87520070516: 876 Improved INCLUDE_CONFIG_FILE support has been introduced to the 877 config(8) utility. In order to take advantage of this new 878 functionality, you are expected to recompile and install 879 src/usr.sbin/config. If you don't rebuild config(8), and your 880 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 881 build will be broken because of a missing "kernconfstring" 882 symbol. 883 88420070513: 885 Symbol versioning is enabled by default. To disable it, use 886 option WITHOUT_SYMVER. It is not advisable to attempt to 887 disable symbol versioning once it is enabled; your installworld 888 will break because a symbol version-less libc will get installed 889 before the install tools. As a result, the old install tools, 890 which previously had symbol dependencies to FBSD_1.0, will fail 891 because the freshly installed libc will not have them. 892 893 The default threading library (providing "libpthread") has been 894 changed to libthr. If you wish to have libkse as your default, 895 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 896 89720070423: 898 The ABI breakage in sendmail(8)'s libmilter has been repaired 899 so it is no longer necessary to recompile mail filters (aka, 900 milters). If you recompiled mail filters after the 20070408 901 note, it is not necessary to recompile them again. 902 90320070417: 904 The new trunk(4) driver has been renamed to lagg(4) as it better 905 reflects its purpose. ifconfig will need to be recompiled. 906 90720070408: 908 sendmail(8) has been updated to version 8.14.1. Mail filters 909 (aka, milters) compiled against the libmilter included in the 910 base operating system should be recompiled. 911 91220070302: 913 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 914 In order to use them one must agree to the respective LICENSE in 915 share/doc/legal and define legal.intel_<name>.license_ack=1 via 916 loader.conf(5) or kenv(1). Make sure to deinstall the now 917 deprecated modules from the respective firmware ports. 918 91920070228: 920 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 921 were removed from FreeBSD's libc. These originally came from INRIA 922 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 923 deprecated in previous releases. 924 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 925 replace it as a more portable (and re-entrant) API. 926 92720070224: 928 To support interrupt filtering a modification to the newbus API 929 has occurred, ABI was broken and __FreeBSD_version was bumped 930 to 700031. Please make sure that your kernel and modules are in 931 sync. For more info: 932 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 933 93420070224: 935 The IPv6 multicast forwarding code may now be loaded into GENERIC 936 kernels by loading the ip_mroute.ko module. This is built into the 937 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 938 set; see src.conf(5) for more information. 939 94020070214: 941 The output of netstat -r has changed. Without -n, we now only 942 print a "network name" without the prefix length if the network 943 address and mask exactly match a Class A/B/C network, and an entry 944 exists in the nsswitch "networks" map. 945 With -n, we print the full unabbreviated CIDR network prefix in 946 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 947 This change is in preparation for changes such as equal-cost 948 multipath, and to more generally assist operational deployment 949 of FreeBSD as a modern IPv4 router. 950 95120070210: 952 PIM has been turned on by default in the IPv4 multicast 953 routing code. The kernel option 'PIM' has now been removed. 954 PIM is now built by default if option 'MROUTING' is specified. 955 It may now be loaded into GENERIC kernels by loading the 956 ip_mroute.ko module. 957 95820070207: 959 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 960 has been removed. Its functionality may be achieved by explicitly 961 configuring gif(4) interfaces and using the 'phyint' keyword in 962 mrouted.conf. 963 XORP does not support source-routed IPv4 multicast tunnels nor the 964 integrated IPIP tunneling, therefore it is not affected by this 965 change. The __FreeBSD_version macro has been bumped to 700030. 966 96720061221: 968 Support for PCI Message Signalled Interrupts has been 969 re-enabled in the bge driver, only for those chips which are 970 believed to support it properly. If there are any problems, 971 MSI can be disabled completely by setting the 972 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 973 in the loader. 974 97520061214: 976 Support for PCI Message Signalled Interrupts has been 977 disabled again in the bge driver. Many revisions of the 978 hardware fail to support it properly. Support can be 979 re-enabled by removing the #define of BGE_DISABLE_MSI in 980 "src/sys/dev/bge/if_bge.c". 981 98220061214: 983 Support for PCI Message Signalled Interrupts has been added 984 to the bge driver. If there are any problems, MSI can be 985 disabled completely by setting the 'hw.pci.enable_msi' and 986 'hw.pci.enable_msix' tunables to 0 in the loader. 987 98820061205: 989 The removal of several facets of the experimental Threading 990 system from the kernel means that the proc and thread structures 991 have changed quite a bit. I suggest all kernel modules that might 992 reference these structures be recompiled.. Especially the 993 linux module. 994 99520061126: 996 Sound infrastructure has been updated with various fixes and 997 improvements. Most of the changes are pretty much transparent, 998 with exceptions of followings: 999 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 1000 moved to their own dev sysctl nodes, for example: 1001 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 1002 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 1003 own chardev in the form of "dsp%d.<function>%d", where <function> 1004 is p = playback, r = record and v = virtual, respectively. Users 1005 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 1006 This does not affect those who are using "/dev/dsp". 1007 100820061122: 1009 geom(4)'s gmirror(8) class metadata structure has been 1010 rev'd from v3 to v4. If you update across this point and 1011 your metadata is converted for you, you will not be easily 1012 able to downgrade since the /boot/kernel.old/geom_mirror.ko 1013 kernel module will be unable to read the v4 metadata. You 1014 can resolve this by doing from the loader(8) prompt: 1015 1016 set vfs.root.mountfrom="ufs:/dev/XXX" 1017 1018 where XXX is the root slice of one of the disks that composed 1019 the mirror (i.e.: /dev/ad0s1a). You can then rebuild 1020 the array the same way you built it originally. 1021 102220061122: 1023 The following binaries have been disconnected from the build: 1024 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 1025 and mount_std. The functionality of these programs has been 1026 moved into the mount program. For example, to mount a devfs 1027 filesystem, instead of using mount_devfs, use: "mount -t devfs". 1028 This does not affect entries in /etc/fstab, since entries in 1029 /etc/fstab are always processed with "mount -t fstype". 1030 103120061113: 1032 Support for PCI Message Signalled Interrupts on i386 and amd64 1033 has been added to the kernel and various drivers will soon be 1034 updated to use MSI when it is available. If there are any problems, 1035 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 1036 and 'hw.pci.enable_msix' tunables to 0 in the loader. 1037 103820061110: 1039 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 1040 The lockmgr object layout has been changed as a result of having 1041 a lock_object embedded in it. As a consequence all file system 1042 kernel modules must be re-compiled. The mutex profiling man page 1043 has not yet been updated to reflect this change. 1044 104520061026: 1046 KSE in the kernel has now been made optional and turned on by 1047 default. Use 'nooption KSE' in your kernel config to turn it 1048 off. All kernel modules *must* be recompiled after this change. 1049 There-after, modules from a KSE kernel should be compatible with 1050 modules from a NOKSE kernel due to the temporary padding fields 1051 added to 'struct proc'. 1052 105320060929: 1054 mrouted and its utilities have been removed from the base system. 1055 105620060927: 1057 Some ioctl(2) command codes have changed. Full backward ABI 1058 compatibility is provided if the "options COMPAT_FREEBSD6" is 1059 present in the kernel configuration file. Make sure to add 1060 this option to your kernel config file, or recompile X.Org 1061 and the rest of ports; otherwise they may refuse to work. 1062 106320060924: 1064 tcpslice has been removed from the base system. 1065 106620060913: 1067 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 1068 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 1069 systat needs to be rebuilt. 1070 107120060903: 1072 libpcap updated to v0.9.4 and tcpdump to v3.9.4 1073 107420060816: 1075 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 1076 for IPFIREWALL_FORWARD is now as it was before when it was first 1077 committed and for years after. The behaviour is now ON. 1078 107920060725: 1080 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 1081 Now it can decrypt files created from different architectures. 1082 Unfortunately, it is no longer able to decrypt a cipher text 1083 generated with an older version on 64 bit architectures. 1084 If you have such a file, you need old utility to decrypt it. 1085 108620060709: 1087 The interface version of the i4b kernel part has changed. So 1088 after updating the kernel sources and compiling a new kernel, 1089 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 1090 be rebuilt, and vice versa. 1091 109220060627: 1093 The XBOX kernel now defaults to the nfe(4) driver instead of 1094 the nve(4) driver. Please update your configuration 1095 accordingly. 1096 109720060514: 1098 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 1099 PCnet family of NICs has been removed. The new le(4) driver serves 1100 as an equivalent but cross-platform replacement with the pcn(4) 1101 driver still providing performance-optimized support for the subset 1102 of AMD Am79C971 PCnet-FAST and greater chips as before. 1103 110420060511: 1105 The machdep.* sysctls and the adjkerntz utility have been 1106 modified a bit. The new adjkerntz utility uses the new 1107 sysctl names and sysctlbyname() calls, so it may be impossible 1108 to run an old /sbin/adjkerntz utility in single-user mode 1109 with a new kernel. Replace the `adjkerntz -i' step before 1110 `make installworld' with: 1111 1112 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 1113 1114 and proceed as usual with the rest of the installworld-stage 1115 steps. Otherwise, you risk installing binaries with their 1116 timestamp set several hours in the future, especially if 1117 you are running with local time set to GMT+X hours. 1118 111920060412: 1120 The ip6fw utility has been removed. The behavior provided by 1121 ip6fw has been in ipfw2 for a good while and the rc.d scripts 1122 have been updated to deal with it. There are some rules that 1123 might not migrate cleanly. Use rc.firewall6 as a template to 1124 rewrite rules. 1125 112620060428: 1127 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 1128 attachments have been removed. Make sure to configure scc(4) 1129 on sparc64. Note also that by default puc(4) will use uart(4) 1130 and not sio(4) for serial ports because interrupt handling has 1131 been optimized for multi-port serial cards and only uart(4) 1132 implements the interface to support it. 1133 113420060330: 1135 The scc(4) driver replaces puc(4) for Serial Communications 1136 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 1137 Z8530. On sparc64, it is advised to add scc(4) to the kernel 1138 configuration to make sure that the serial ports remain 1139 functional. 1140 114120060317: 1142 Most world/kernel related NO_* build options changed names. 1143 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 1144 after FreeBSD ports) and should be set in /etc/src.conf 1145 (the src.conf(5) manpage is provided). Full backwards 1146 compatibility is maintained for the time being though it's 1147 highly recommended to start moving old options out of the 1148 system-wide /etc/make.conf file into the new /etc/src.conf 1149 while also properly renaming them. More conversions will 1150 likely follow. Posting to current@: 1151 1152 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 1153 115420060305: 1155 The NETSMBCRYPTO kernel option has been retired because its 1156 functionality is always included in NETSMB and smbfs.ko now. 1157 115820060303: 1159 The TDFX_LINUX kernel option was retired and replaced by the 1160 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 1161 kernel module. Loading it alone should suffice to get 3dfx support 1162 for Linux apps because it will pull in 3dfx.ko and linux.ko through 1163 its dependencies. 1164 116520060204: 1166 The 'audit' group was added to support the new auditing functionality 1167 in the base system. Be sure to follow the directions for updating, 1168 including the requirement to run mergemaster -p. 1169 117020060201: 1171 The kernel ABI to file system modules was changed on i386. 1172 Please make sure that your kernel and modules are in sync. 1173 117420060118: 1175 This actually occured some time ago, but installing the kernel 1176 now also installs a bunch of symbol files for the kernel modules. 1177 This increases the size of /boot/kernel to about 67Mbytes. You 1178 will need twice this if you will eventually back this up to kernel.old 1179 on your next install. 1180 If you have a shortage of room in your root partition, you should add 1181 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 1182 to your /etc/make.conf. 1183 118420060113: 1185 libc's malloc implementation has been replaced. This change has the 1186 potential to uncover application bugs that previously went unnoticed. 1187 See the malloc(3) manual page for more details. 1188 118920060112: 1190 The generic netgraph(4) cookie has been changed. If you upgrade 1191 kernel passing this point, you also need to upgrade userland 1192 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 1193 119420060106: 1195 si(4)'s device files now contain the unit number. 1196 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 1197 119820060106: 1199 The kernel ABI was mostly destroyed due to a change in the size 1200 of struct lock_object which is nested in other structures such 1201 as mutexes which are nested in all sorts of other structures. 1202 Make sure your kernel and modules are in sync. 1203 120420051231: 1205 The page coloring algorithm in the VM subsystem was converted 1206 from tuning with kernel options to autotuning. Please remove 1207 any PQ_* option except PQ_NOOPT from your kernel config. 1208 120920051211: 1210 The net80211-related tools in the tools/tools/ath directory 1211 have been moved to tools/tools/net80211 and renamed with a 1212 "wlan" prefix. Scripts that use them should be adjusted 1213 accordingly. 1214 121520051202: 1216 Scripts in the local_startup directories (as defined in 1217 /etc/defaults/rc.conf) that have the new rc.d semantics will 1218 now be run as part of the base system rcorder. If there are 1219 errors or problems with one of these local scripts, it could 1220 cause boot problems. If you encounter such problems, boot in 1221 single user mode, remove that script from the */rc.d directory. 1222 Please report the problem to the port's maintainer, and the 1223 freebsd-ports@freebsd.org mailing list. 1224 122520051129: 1226 The nodev mount option was deprecated in RELENG_6 (where it 1227 was a no-op), and is now unsupported. If you have nodev or dev listed 1228 in /etc/fstab, remove it, otherwise it will result in a mount error. 1229 123020051129: 1231 ABI between ipfw(4) and ipfw(8) has been changed. You need 1232 to rebuild ipfw(8) when rebuilding kernel. 1233 123420051108: 1235 rp(4)'s device files now contain the unit number. 1236 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 1237 123820051029: 1239 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 1240 Its /etc/rc.conf.d configuration file has been `ppp' from 1241 the beginning, and hence there is no need to touch it. 1242 124320051014: 1244 Now most modules get their build-time options from the kernel 1245 configuration file. A few modules still have fixed options 1246 due to their non-conformant implementation, but they will be 1247 corrected eventually. You may need to review the options of 1248 the modules in use, explicitly specify the non-default options 1249 in the kernel configuration file, and rebuild the kernel and 1250 modules afterwards. 1251 125220051001: 1253 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 1254 to turn polling(4) on your interfaces. 1255 125620050927: 1257 The old bridge(4) implementation was retired. The new 1258 if_bridge(4) serves as a full functional replacement. 1259 126020050722: 1261 The ai_addrlen of a struct addrinfo was changed to a socklen_t 1262 to conform to POSIX-2001. This change broke an ABI 1263 compatibility on 64 bit architecture. You have to recompile 1264 userland programs that use getaddrinfo(3) on 64 bit 1265 architecture. 1266 126720050711: 1268 RELENG_6 branched here. 1269 127020050629: 1271 The pccard_ifconfig rc.conf variable has been removed and a new 1272 variable, ifconfig_DEFAULT has been introduced. Unlike 1273 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 1274 do not have ifconfig_ifn entries rather than just those in 1275 removable_interfaces. 1276 127720050616: 1278 Some previous versions of PAM have permitted the use of 1279 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 1280 to third party PAM modules in /usr/local/lib. A change has been 1281 made to require the use of absolute paths in order to avoid 1282 ambiguity and dependence on library path configuration, which may 1283 affect existing configurations. 1284 128520050610: 1286 Major changes to network interface API. All drivers must be 1287 recompiled. Drivers not in the base system will need to be 1288 updated to the new APIs. 1289 129020050609: 1291 Changes were made to kinfo_proc in sys/user.h. Please recompile 1292 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 1293 will not behave correctly. 1294 1295 The API and ABI for hwpmc(4) have changed with the addition 1296 of sampling support. Please recompile lib/libpmc(3) and 1297 usr.sbin/{pmcstat,pmccontrol}. 1298 129920050606: 1300 The OpenBSD dhclient was imported in place of the ISC dhclient 1301 and the network interface configuration scripts were updated 1302 accordingly. If you use DHCP to configure your interfaces, you 1303 must now run devd. Also, DNS updating was lost so you will need 1304 to find a workaround if you use this feature. 1305 1306 The '_dhcp' user was added to support the OpenBSD dhclient. Be 1307 sure to run mergemaster -p (like you are supposed to do every time 1308 anyway). 1309 131020050605: 1311 if_bridge was added to the tree. This has changed struct ifnet. 1312 Please recompile userland and all network related modules. 1313 131420050603: 1315 The n_net of a struct netent was changed to an uint32_t, and 1316 1st argument of getnetbyaddr() was changed to an uint32_t, to 1317 conform to POSIX-2001. These changes broke an ABI 1318 compatibility on 64 bit architecture. With these changes, 1319 shlib major of libpcap was bumped. You have to recompile 1320 userland programs that use getnetbyaddr(3), getnetbyname(3), 1321 getnetent(3) and/or libpcap on 64 bit architecture. 1322 132320050528: 1324 Kernel parsing of extra options on '#!' first lines of shell 1325 scripts has changed. Lines with multiple options likely will 1326 fail after this date. For full details, please see 1327 http://people.freebsd.org/~gad/Updating-20050528.txt 1328 132920050503: 1330 The packet filter (pf) code has been updated to OpenBSD 3.7 1331 Please note the changed anchor syntax and the fact that 1332 authpf(8) now needs a mounted fdescfs(5) to function. 1333 133420050415: 1335 The NO_MIXED_MODE kernel option has been removed from the i386 1336 amd64 platforms as its use has been superceded by the new local 1337 APIC timer code. Any kernel config files containing this option 1338 should be updated. 1339 134020050227: 1341 The on-disk format of LC_CTYPE files was changed to be machine 1342 independent. Please make sure NOT to use NO_CLEAN buildworld 1343 when crossing this point. Crossing this point also requires 1344 recompile or reinstall of all locale depended packages. 1345 134620050225: 1347 The ifi_epoch member of struct if_data has been changed to 1348 contain the uptime at which the interface was created or the 1349 statistics zeroed rather then the wall clock time because 1350 wallclock time may go backwards. This should have no impact 1351 unless an snmp implementation is using this value (I know of 1352 none at this point.) 1353 135420050224: 1355 The acpi_perf and acpi_throttle drivers are now part of the 1356 acpi(4) main module. They are no longer built separately. 1357 135820050223: 1359 The layout of struct image_params has changed. You have to 1360 recompile all compatibility modules (linux, svr4, etc) for use 1361 with the new kernel. 1362 136320050223: 1364 The p4tcc driver has been merged into cpufreq(4). This makes 1365 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 1366 compile in "device cpufreq" to restore this functionality. 1367 136820050220: 1369 The responsibility of recomputing the file system summary of 1370 a SoftUpdates-enabled dirty volume has been transferred to the 1371 background fsck. A rebuild of fsck(8) utility is recommended 1372 if you have updated the kernel. 1373 1374 To get the old behavior (recompute file system summary at mount 1375 time), you can set vfs.ffs.compute_summary_at_mount=1 before 1376 mounting the new volume. 1377 137820050206: 1379 The cpufreq import is complete. As part of this, the sysctls for 1380 acpi(4) throttling have been removed. The power_profile script 1381 has been updated, so you can use performance/economy_cpu_freq in 1382 rc.conf(5) to set AC on/offline cpu frequencies. 1383 138420050206: 1385 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 1386 requires recompiling libnetgraph and userland netgraph utilities. 1387 138820050114: 1389 Support for abbreviated forms of a number of ipfw options is 1390 now deprecated. Warnings are printed to stderr indicating the 1391 correct full form when a match occurs. Some abbreviations may 1392 be supported at a later date based on user feedback. To be 1393 considered for support, abbreviations must be in use prior to 1394 this commit and unlikely to be confused with current key words. 1395 139620041221: 1397 By a popular demand, a lot of NOFOO options were renamed 1398 to NO_FOO (see bsd.compat.mk for a full list). The old 1399 spellings are still supported, but will cause annoying 1400 warnings on stderr. Make sure you upgrade properly (see 1401 the COMMON ITEMS: section later in this file). 1402 140320041219: 1404 Auto-loading of ancillary wlan modules such as wlan_wep has 1405 been temporarily disabled; you need to statically configure 1406 the modules you need into your kernel or explicitly load them 1407 prior to use. Specifically, if you intend to use WEP encryption 1408 with an 802.11 device load/configure wlan_wep; if you want to 1409 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 1410 and wlan_xauth as required. 1411 141220041213: 1413 The behaviour of ppp(8) has changed slightly. If lqr is enabled 1414 (``enable lqr''), older versions would revert to LCP ECHO mode on 1415 negotiation failure. Now, ``enable echo'' is required for this 1416 behaviour. The ppp version number has been bumped to 3.4.2 to 1417 reflect the change. 1418 141920041201: 1420 The wlan support has been updated to split the crypto support 1421 into separate modules. For static WEP you must configure the 1422 wlan_wep module in your system or build and install the module 1423 in place where it can be loaded (the kernel will auto-load 1424 the module when a wep key is configured). 1425 142620041201: 1427 The ath driver has been updated to split the tx rate control 1428 algorithm into a separate module. You need to include either 1429 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 1430 143120041116: 1432 Support for systems with an 80386 CPU has been removed. Please 1433 use FreeBSD 5.x or earlier on systems with an 80386. 1434 143520041110: 1436 We have had a hack which would mount the root filesystem 1437 R/W if the device were named 'md*'. As part of the vnode 1438 work I'm doing I have had to remove this hack. People 1439 building systems which use preloaded MD root filesystems 1440 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 1441 their /etc/rc scripts. 1442 144320041104: 1444 FreeBSD 5.3 shipped here. 1445 144620041102: 1447 The size of struct tcpcb has changed again due to the removal 1448 of RFC1644 T/TCP. You have to recompile userland programs that 1449 read kmem for tcp sockets directly (netstat, sockstat, etc.) 1450 145120041022: 1452 The size of struct tcpcb has changed. You have to recompile 1453 userland programs that read kmem for tcp sockets directly 1454 (netstat, sockstat, etc.) 1455 145620041016: 1457 RELENG_5 branched here. For older entries, please see updating 1458 in the RELENG_5 branch. 1459 1460COMMON ITEMS: 1461 1462 General Notes 1463 ------------- 1464 Avoid using make -j when upgrading. From time to time in the 1465 past there have been problems using -j with buildworld and/or 1466 installworld. This is especially true when upgrading between 1467 "distant" versions (eg one that cross a major release boundary 1468 or several minor releases, or when several months have passed 1469 on the -current branch). 1470 1471 Sometimes, obscure build problems are the result of environment 1472 poisoning. This can happen because the make utility reads its 1473 environment when searching for values for global variables. 1474 To run your build attempts in an "environmental clean room", 1475 prefix all make commands with 'env -i '. See the env(1) manual 1476 page for more details. 1477 1478 When upgrading from one major version to another it is generally 1479 best to upgrade to the latest code in the currently installed branch 1480 first, then do an upgrade to the new branch. This is the best-tested 1481 upgrade path, and has the highest probability of being successful. 1482 Please try this approach before reporting problems with a major 1483 version upgrade. 1484 1485 To build a kernel 1486 ----------------- 1487 If you are updating from a prior version of FreeBSD (even one just 1488 a few days old), you should follow this procedure. It is the most 1489 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 1490 1491 make kernel-toolchain 1492 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 1493 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 1494 1495 To test a kernel once 1496 --------------------- 1497 If you just want to boot a kernel once (because you are not sure 1498 if it works, or if you want to boot a known bad kernel to provide 1499 debugging information) run 1500 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 1501 nextboot -k testkernel 1502 1503 To just build a kernel when you know that it won't mess you up 1504 -------------------------------------------------------------- 1505 This assumes you are already running a 5.X system. Replace 1506 ${arch} with the architecture of your machine (e.g. "i386", 1507 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 1508 1509 cd src/sys/${arch}/conf 1510 config KERNEL_NAME_HERE 1511 cd ../compile/KERNEL_NAME_HERE 1512 make depend 1513 make 1514 make install 1515 1516 If this fails, go to the "To build a kernel" section. 1517 1518 To rebuild everything and install it on the current system. 1519 ----------------------------------------------------------- 1520 # Note: sometimes if you are running current you gotta do more than 1521 # is listed here if you are upgrading from a really old current. 1522 1523 <make sure you have good level 0 dumps> 1524 make buildworld 1525 make kernel KERNCONF=YOUR_KERNEL_HERE 1526 [1] 1527 <reboot in single user> [3] 1528 mergemaster -p [5] 1529 make installworld 1530 make delete-old 1531 mergemaster [4] 1532 <reboot> 1533 1534 1535 To cross-install current onto a separate partition 1536 -------------------------------------------------- 1537 # In this approach we use a separate partition to hold 1538 # current's root, 'usr', and 'var' directories. A partition 1539 # holding "/", "/usr" and "/var" should be about 2GB in 1540 # size. 1541 1542 <make sure you have good level 0 dumps> 1543 <boot into -stable> 1544 make buildworld 1545 make buildkernel KERNCONF=YOUR_KERNEL_HERE 1546 <maybe newfs current's root partition> 1547 <mount current's root partition on directory ${CURRENT_ROOT}> 1548 make installworld DESTDIR=${CURRENT_ROOT} 1549 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 1550 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 1551 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 1552 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 1553 <reboot into current> 1554 <do a "native" rebuild/install as described in the previous section> 1555 <maybe install compatibility libraries from ports/misc/compat*> 1556 <reboot> 1557 1558 1559 To upgrade in-place from 5.x-stable to current 1560 ---------------------------------------------- 1561 <make sure you have good level 0 dumps> 1562 make buildworld [9] 1563 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 1564 [1] 1565 <reboot in single user> [3] 1566 mergemaster -p [5] 1567 make installworld 1568 make delete-old 1569 mergemaster -i [4] 1570 <reboot> 1571 1572 Make sure that you've read the UPDATING file to understand the 1573 tweaks to various things you need. At this point in the life 1574 cycle of current, things change often and you are on your own 1575 to cope. The defaults can also change, so please read ALL of 1576 the UPDATING entries. 1577 1578 Also, if you are tracking -current, you must be subscribed to 1579 freebsd-current@freebsd.org. Make sure that before you update 1580 your sources that you have read and understood all the recent 1581 messages there. If in doubt, please track -stable which has 1582 much fewer pitfalls. 1583 1584 [1] If you have third party modules, such as vmware, you 1585 should disable them at this point so they don't crash your 1586 system on reboot. 1587 1588 [3] From the bootblocks, boot -s, and then do 1589 fsck -p 1590 mount -u / 1591 mount -a 1592 cd src 1593 adjkerntz -i # if CMOS is wall time 1594 Also, when doing a major release upgrade, it is required that 1595 you boot into single user mode to do the installworld. 1596 1597 [4] Note: This step is non-optional. Failure to do this step 1598 can result in a significant reduction in the functionality of the 1599 system. Attempting to do it by hand is not recommended and those 1600 that pursue this avenue should read this file carefully, as well 1601 as the archives of freebsd-current and freebsd-hackers mailing lists 1602 for potential gotchas. 1603 1604 [5] Usually this step is a noop. However, from time to time 1605 you may need to do this if you get unknown user in the following 1606 step. It never hurts to do it all the time. You may need to 1607 install a new mergemaster (cd src/usr.sbin/mergemaster && make 1608 install) after the buildworld before this step if you last updated 1609 from current before 20020224 or from -stable before 20020408. 1610 1611 [8] In order to have a kernel that can run the 4.x binaries 1612 needed to do an installworld, you must include the COMPAT_FREEBSD4 1613 option in your kernel. Failure to do so may leave you with a system 1614 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 1615 is required to run the 5.x binaries on more recent kernels. 1616 1617 Make sure that you merge any new devices from GENERIC since the 1618 last time you updated your kernel config file. 1619 1620 [9] When checking out sources, you must include the -P flag to have 1621 cvs prune empty directories. 1622 1623 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 1624 "?=" instead of the "=" assignment operator, so that buildworld can 1625 override the CPUTYPE if it needs to. 1626 1627 MAKEOBJDIRPREFIX must be defined in an environment variable, and 1628 not on the command line, or in /etc/make.conf. buildworld will 1629 warn if it is improperly defined. 1630FORMAT: 1631 1632This file contains a list, in reverse chronological order, of major 1633breakages in tracking -current. Not all things will be listed here, 1634and it only starts on October 16, 2004. Updating files can found in 1635previous releases if your system is older than this. 1636 1637Copyright information: 1638 1639Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1640 1641Redistribution, publication, translation and use, with or without 1642modification, in full or in part, in any form or format of this 1643document are permitted without further permission from the author. 1644 1645THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1646IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1647WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1648DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1649INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1650(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1651SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1652HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1653STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1654IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1655POSSIBILITY OF SUCH DAMAGE. 1656 1657If you find this document useful, and you want to, you may buy the 1658author a beer. 1659 1660Contact Warner Losh if you have any questions about your use of 1661this document. 1662 1663$FreeBSD: head/UPDATING 195699 2009-07-14 22:48:30Z rwatson $ 1664