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