UPDATING revision 178609
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 2520080420: 26 The 802.11 wireless support was redone to enable multi-bss 27 operation on devices that are capable. The underlying device 28 is no longer used directly but instead wlanX devices are 29 cloned with ifconfig. This requires changes to rc.conf files. 30 For example, change: 31 ifconfig_ath0="WPA DHCP" 32 to 33 wlans_ath0=wlan0 34 ifconfig_wlan0="WPA DHCP" 35 see rc.conf(5) for more details. 36 37 As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta 38 modules were merged into the base wlan module. All references 39 to these modules (e.g. in kernel config files) must be removed. 40 4120080408: 42 psm(4) has gained write(2) support in native operation level. 43 Arbitrary commands can be written to /dev/psm%d and status can 44 be read back from it. Therefore, an application is responsible 45 for status validation and error recovery. It is a no-op in 46 other operation levels. 47 4820080312: 49 Support for KSE threading has been removed from the kernel. To 50 run legacy applications linked against KSE libmap.conf may 51 be used. The following libmap.conf may be used to ensure 52 compatibility with any prior release: 53 54 libpthread.so.1 libthr.so.1 55 libpthread.so.2 libthr.so.2 56 libkse.so.3 libthr.so.3 57 5820080301: 59 The layout of struct vmspace has changed. This affects libkvm 60 and any executables that link against libkvm and use the 61 kvm_getprocs() function. In particular, but not exclusively, 62 it affects ps(1), fstat(1), pkill(1), systat(1), top(1) and w(1). 63 The effects are minimal, but it's advisable to upgrade world 64 nonetheless. 65 6620080229: 67 The latest em driver no longer has support in it for the 68 82575 adapter, this is now moved to the igb driver. The 69 split was done to make new features that are incompatible 70 with older hardware easier to do. 71 7220080220: 73 The new geom_lvm(4) geom class has been renamed to geom_linux_lvm(4), 74 likewise the kernel option is now GEOM_LINUX_LVM. 75 7620080211: 77 The default NFS mount mode has changed from UDP to TCP for 78 increased reliability. If you rely on (insecurely) NFS 79 mounting across a firewall you may need to update your 80 firewall rules. 81 8220080208: 83 Belatedly note the addition of m_collapse for compacting 84 mbuf chains. 85 8620080126: 87 The fts(3) structures have been changed to use adequate 88 integer types for their members and so to be able to cope 89 with huge file trees. The old fts(3) ABI is preserved 90 through symbol versioning in libc, so third-party binaries 91 using fts(3) should still work, although they will not take 92 advantage of the extended types. At the same time, some 93 third-party software might fail to build after this change 94 due to unportable assumptions made in its source code about 95 fts(3) structure members. Such software should be fixed 96 by its vendor or, in the worst case, in the ports tree. 97 FreeBSD_version 800015 marks this change for the unlikely 98 case that a portable fix is impossible. 99 10020080123: 101 To upgrade to -current after this date, you must be running 102 FreeBSD not older than 6.0-RELEASE. Upgrading to -current 103 from 5.x now requires a stop over at RELENG_6 or RELENG_7 systems. 104 10520071128: 106 The ADAPTIVE_GIANT kernel option has been retired because its 107 functionality is the default now. 108 10920071118: 110 The AT keyboard emulation of sunkbd(4) has been turned on 111 by default. In order to make the special symbols of the Sun 112 keyboards driven by sunkbd(4) work under X these now have 113 to be configured the same way as Sun USB keyboards driven 114 by ukbd(4) (which also does AT keyboard emulation), f.e.: 115 116 Option "XkbLayout" "us" 117 Option "XkbRules" "xorg" 118 Option "XkbSymbols" "pc(pc105)+sun_vndr/usb(sun_usb)+us" 119 12020071024: 121 It has been decided that it is desirable to provide ABI 122 backwards compatibility to the FreeBSD 4/5/6 versions of the 123 PCIOCGETCONF, PCIOCREAD and PCIOCWRITE IOCTLs, which was 124 broken with the introduction of PCI domain support (see the 125 20070930 entry). Unfortunately, this required the ABI of 126 PCIOCGETCONF to be broken again in order to be able to 127 provide backwards compatibility to the old version of that 128 IOCTL. Thus consumers of PCIOCGETCONF have to be recompiled 129 again. As for prominent ports this affects neither pciutils 130 nor xorg-server this time, the hal port needs to be rebuilt 131 however. 132 13320071020: 134 The misnamed kthread_create() and friends have been renamed 135 to kproc_create() etc. Many of the callers already 136 used kproc_start().. 137 I will return kthread_create() and friends in a while 138 with implementations that actually create threads, not procs. 139 Renaming corresponds with version 800002. 140 14120071010: 142 RELENG_7 branched. 143 14420071009: 145 Setting WITHOUT_LIBPTHREAD now means WITHOUT_LIBKSE and 146 WITHOUT_LIBTHR are set. 147 14820070930: 149 The PCI code has been made aware of PCI domains. This means that 150 the location strings as used by pciconf(8) etc are now in the 151 following format: pci<domain>:<bus>:<device>[:<function>]. It 152 also means that consumers of <sys/pciio.h> potentially need to 153 be recompiled; this includes the hal and xorg-server ports. 154 15520070928: 156 The caching daemon (cached) was renamed to nscd. nscd.conf 157 configuration file should be used instead of cached.conf and 158 nscd_enable, nscd_pidfile and nscd_flags options should be used 159 instead of cached_enable, cached_pidfile and cached_flags in 160 rc.conf. 161 16220070921: 163 The getfacl(1) utility now prints owning user and group name 164 instead of owning uid and gid in the three line comment header. 165 This is the same behavior as getfacl(1) on Solaris and Linux. 166 16720070704: 168 The new IPsec code is now compiled in using the IPSEC option. The 169 IPSEC option now requires "device crypto" be defined in your kernel 170 configuration. The FAST_IPSEC kernel option is now deprecated. 171 17220070702: 173 The packet filter (pf) code has been updated to OpenBSD 4.1 Please 174 note the changed syntax - keep state is now on by default. Also 175 note the fact that ftp-proxy(8) has been changed from bottom up and 176 has been moved from libexec to usr/sbin. Changes in the ALTQ 177 handling also affect users of IPFW's ALTQ capabilities. 178 17920070701: 180 Remove KAME IPsec in favor of FAST_IPSEC, which is now the 181 only IPsec supported by FreeBSD. The new IPsec stack 182 supports both IPv4 and IPv6. The kernel option will change 183 after the code changes have settled in. For now the kernel 184 option IPSEC is deprecated and FAST_IPSEC is the only option, that 185 will change after some settling time. 186 18720070701: 188 The wicontrol(8) utility has been removed from the base system. wi(4) 189 cards should be configured using ifconfig(8), see the man page for more 190 information. 191 19220070612: 193 The i386/amd64 GENERIC kernel now defaults to the nfe(4) driver 194 instead of the nve(4) driver. Please update your configuration 195 accordingly. 196 19720070612: 198 By default, /etc/rc.d/sendmail no longer rebuilds the aliases 199 database if it is missing or older than the aliases file. If 200 desired, set the new rc.conf option sendmail_rebuild_aliases 201 to "YES" to restore that functionality. 202 20320070612: 204 The IPv4 multicast socket code has been considerably modified, and 205 moved to the file sys/netinet/in_mcast.c. Initial support for the 206 RFC 3678 Source-Specific Multicast Socket API has been added to 207 the IPv4 network stack. 208 209 Strict multicast and broadcast reception is now the default for 210 UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 211 has now been removed. 212 213 The RFC 1724 hack for interface selection has been removed; the use 214 of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 215 been added to replace it. Consumers such as routed will soon be 216 updated to reflect this. 217 218 These changes affect users who are running routed(8) or rdisc(8) 219 from the FreeBSD base system on point-to-point or unnumbered 220 interfaces. 221 22220070610: 223 The net80211 layer has changed significantly and all wireless 224 drivers that depend on it need to be recompiled. Further these 225 changes require that any program that interacts with the wireless 226 support in the kernel be recompiled; this includes: ifconfig, 227 wpa_supplicant, hostapd, and wlanstats. Users must also, for 228 the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 229 if they use modules for wireless support. These modules implement 230 scanning support for station and ap modes, respectively. Failure 231 to load the appropriate module before marking a wireless interface 232 up will result in a message to the console and the device not 233 operating properly. 234 23520070610: 236 The pam_nologin(8) module ceases to provide an authentication 237 function and starts providing an account management function. 238 Consequent changes to /etc/pam.d should be brought in using 239 mergemaster(8). Third-party files in /usr/local/etc/pam.d may 240 need manual editing as follows. Locate this line (or similar): 241 242 auth required pam_nologin.so no_warn 243 244 and change it according to this example: 245 246 account required pam_nologin.so no_warn 247 248 That is, the first word needs to be changed from "auth" to 249 "account". The new line can be moved to the account section 250 within the file for clarity. Not updating pam.conf(5) files 251 will result in nologin(5) ignored by the respective services. 252 25320070529: 254 The ether_ioctl() function has been synchronized with ioctl(2) 255 and ifnet.if_ioctl. Due to that, the size of one of its arguments 256 has changed on 64-bit architectures. All kernel modules using 257 ether_ioctl() need to be rebuilt on such architectures. 258 25920070516: 260 Improved INCLUDE_CONFIG_FILE support has been introduced to the 261 config(8) utility. In order to take advantage of this new 262 functionality, you are expected to recompile and install 263 src/usr.sbin/config. If you don't rebuild config(8), and your 264 kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 265 build will be broken because of a missing "kernconfstring" 266 symbol. 267 26820070513: 269 Symbol versioning is enabled by default. To disable it, use 270 option WITHOUT_SYMVER. It is not advisable to attempt to 271 disable symbol versioning once it is enabled; your installworld 272 will break because a symbol version-less libc will get installed 273 before the install tools. As a result, the old install tools, 274 which previously had symbol dependencies to FBSD_1.0, will fail 275 because the freshly installed libc will not have them. 276 277 The default threading library (providing "libpthread") has been 278 changed to libthr. If you wish to have libkse as your default, 279 use option DEFAULT_THREAD_LIB=libkse for the buildworld. 280 28120070423: 282 The ABI breakage in sendmail(8)'s libmilter has been repaired 283 so it is no longer necessary to recompile mail filters (aka, 284 milters). If you recompiled mail filters after the 20070408 285 note, it is not necessary to recompile them again. 286 28720070417: 288 The new trunk(4) driver has been renamed to lagg(4) as it better 289 reflects its purpose. ifconfig will need to be recompiled. 290 29120070408: 292 sendmail(8) has been updated to version 8.14.1. Mail filters 293 (aka, milters) compiled against the libmilter included in the 294 base operating system should be recompiled. 295 29620070302: 297 Firmwares for ipw(4) and iwi(4) are now included in the base tree. 298 In order to use them one must agree to the respective LICENSE in 299 share/doc/legal and define legal.intel_<name>.license_ack=1 via 300 loader.conf(5) or kenv(1). Make sure to deinstall the now 301 deprecated modules from the respective firmware ports. 302 30320070228: 304 The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 305 were removed from FreeBSD's libc. These originally came from INRIA 306 IPv6. Nothing in FreeBSD ever used them. They may be regarded as 307 deprecated in previous releases. 308 The AF_LINK support for getnameinfo(3) was merged from NetBSD to 309 replace it as a more portable (and re-entrant) API. 310 31120070224: 312 To support interrupt filtering a modification to the newbus API 313 has occurred, ABI was broken and __FreeBSD_version was bumped 314 to 700031. Please make sure that your kernel and modules are in 315 sync. For more info: 316 http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 317 31820070224: 319 The IPv6 multicast forwarding code may now be loaded into GENERIC 320 kernels by loading the ip_mroute.ko module. This is built into the 321 module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 322 set; see src.conf(5) for more information. 323 32420070214: 325 The output of netstat -r has changed. Without -n, we now only 326 print a "network name" without the prefix length if the network 327 address and mask exactly match a Class A/B/C network, and an entry 328 exists in the nsswitch "networks" map. 329 With -n, we print the full unabbreviated CIDR network prefix in 330 the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 331 This change is in preparation for changes such as equal-cost 332 multipath, and to more generally assist operational deployment 333 of FreeBSD as a modern IPv4 router. 334 33520070210: 336 PIM has been turned on by default in the IPv4 multicast 337 routing code. The kernel option 'PIM' has now been removed. 338 PIM is now built by default if option 'MROUTING' is specified. 339 It may now be loaded into GENERIC kernels by loading the 340 ip_mroute.ko module. 341 34220070207: 343 Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 344 has been removed. Its functionality may be achieved by explicitly 345 configuring gif(4) interfaces and using the 'phyint' keyword in 346 mrouted.conf. 347 XORP does not support source-routed IPv4 multicast tunnels nor the 348 integrated IPIP tunneling, therefore it is not affected by this 349 change. The __FreeBSD_version macro has been bumped to 700030. 350 35120061221: 352 Support for PCI Message Signalled Interrupts has been 353 re-enabled in the bge driver, only for those chips which are 354 believed to support it properly. If there are any problems, 355 MSI can be disabled completely by setting the 356 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 357 in the loader. 358 35920061214: 360 Support for PCI Message Signalled Interrupts has been 361 disabled again in the bge driver. Many revisions of the 362 hardware fail to support it properly. Support can be 363 re-enabled by removing the #define of BGE_DISABLE_MSI in 364 "src/sys/dev/bge/if_bge.c". 365 36620061214: 367 Support for PCI Message Signalled Interrupts has been added 368 to the bge driver. If there are any problems, MSI can be 369 disabled completely by setting the 'hw.pci.enable_msi' and 370 'hw.pci.enable_msix' tunables to 0 in the loader. 371 37220061205: 373 The removal of several facets of the experimental Threading 374 system from the kernel means that the proc and thread structures 375 have changed quite a bit. I suggest all kernel modules that might 376 reference these structures be recompiled.. Especially the 377 linux module. 378 37920061126: 380 Sound infrastructure has been updated with various fixes and 381 improvements. Most of the changes are pretty much transparent, 382 with exceptions of followings: 383 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 384 moved to their own dev sysctl nodes, for example: 385 hw.snd.pcm0.vchans -> dev.pcm.0.vchans 386 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 387 own chardev in the form of "dsp%d.<function>%d", where <function> 388 is p = playback, r = record and v = virtual, respectively. Users 389 are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 390 This does not affect those who are using "/dev/dsp". 391 39220061122: 393 The following binaries have been disconnected from the build: 394 mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 395 and mount_std. The functionality of these programs has been 396 moved into the mount program. For example, to mount a devfs 397 filesystem, instead of using mount_devfs, use: "mount -t devfs". 398 This does not affect entries in /etc/fstab, since entries in 399 /etc/fstab are always processed with "mount -t fstype". 400 40120061113: 402 Support for PCI Message Signalled Interrupts on i386 and amd64 403 has been added to the kernel and various drivers will soon be 404 updated to use MSI when it is available. If there are any problems, 405 MSI can be disabled completely by setting the 'hw.pci.enable_msi' 406 and 'hw.pci.enable_msix' tunables to 0 in the loader. 407 40820061110: 409 The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 410 The lockmgr object layout has been changed as a result of having 411 a lock_object embedded in it. As a consequence all file system 412 kernel modules must be re-compiled. The mutex profiling man page 413 has not yet been updated to reflect this change. 414 41520061026: 416 KSE in the kernel has now been made optional and turned on by 417 default. Use 'nooption KSE' in your kernel config to turn it 418 off. All kernel modules *must* be recompiled after this change. 419 There-after, modules from a KSE kernel should be compatible with 420 modules from a NOKSE kernel due to the temporary padding fields 421 added to 'struct proc'. 422 42320060929: 424 mrouted and its utilities have been removed from the base system. 425 42620060927: 427 Some ioctl(2) command codes have changed. Full backward ABI 428 compatibility is provided if the "options COMPAT_FREEBSD6" is 429 present in the kernel configuration file. Make sure to add 430 this option to your kernel config file, or recompile X.Org 431 and the rest of ports; otherwise they may refuse to work. 432 43320060924: 434 tcpslice has been removed from the base system. 435 43620060913: 437 The sizes of struct tcpcb (and struct xtcpcb) have changed due to 438 the rewrite of TCP syncookies. Tools like netstat, sockstat, and 439 systat needs to be rebuilt. 440 44120060903: 442 libpcap updated to v0.9.4 and tcpdump to v3.9.4 443 44420060816: 445 The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 446 for IPFIREWALL_FORWARD is now as it was before when it was first 447 committed and for years after. The behaviour is now ON. 448 44920060725: 450 enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 451 Now it can decrypt files created from different architectures. 452 Unfortunately, it is no longer able to decrypt a cipher text 453 generated with an older version on 64 bit architectures. 454 If you have such a file, you need old utility to decrypt it. 455 45620060709: 457 The interface version of the i4b kernel part has changed. So 458 after updating the kernel sources and compiling a new kernel, 459 the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 460 be rebuilt, and vice versa. 461 46220060627: 463 The XBOX kernel now defaults to the nfe(4) driver instead of 464 the nve(4) driver. Please update your configuration 465 accordingly. 466 46720060514: 468 The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 469 PCnet family of NICs has been removed. The new le(4) driver serves 470 as an equivalent but cross-platform replacement with the pcn(4) 471 driver still providing performance-optimized support for the subset 472 of AMD Am79C971 PCnet-FAST and greater chips as before. 473 47420060511: 475 The machdep.* sysctls and the adjkerntz utility have been 476 modified a bit. The new adjkerntz utility uses the new 477 sysctl names and sysctlbyname() calls, so it may be impossible 478 to run an old /sbin/adjkerntz utility in single-user mode 479 with a new kernel. Replace the `adjkerntz -i' step before 480 `make installworld' with: 481 482 /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 483 484 and proceed as usual with the rest of the installworld-stage 485 steps. Otherwise, you risk installing binaries with their 486 timestamp set several hours in the future, especially if 487 you are running with local time set to GMT+X hours. 488 48920060412: 490 The ip6fw utility has been removed. The behavior provided by 491 ip6fw has been in ipfw2 for a good while and the rc.d scripts 492 have been updated to deal with it. There are some rules that 493 might not migrate cleanly. Use rc.firewall6 as a template to 494 rewrite rules. 495 49620060428: 497 The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 498 attachments have been removed. Make sure to configure scc(4) 499 on sparc64. Note also that by default puc(4) will use uart(4) 500 and not sio(4) for serial ports because interrupt handling has 501 been optimized for multi-port serial cards and only uart(4) 502 implements the interface to support it. 503 50420060330: 505 The scc(4) driver replaces puc(4) for Serial Communications 506 Controllers (SCCs) like the Siemens SAB82532 and the Zilog 507 Z8530. On sparc64, it is advised to add scc(4) to the kernel 508 configuration to make sure that the serial ports remain 509 functional. 510 51120060317: 512 Most world/kernel related NO_* build options changed names. 513 New knobs have common prefixes WITHOUT_*/WITH_* (modelled 514 after FreeBSD ports) and should be set in /etc/src.conf 515 (the src.conf(5) manpage is provided). Full backwards 516 compatibility is maintained for the time being though it's 517 highly recommended to start moving old options out of the 518 system-wide /etc/make.conf file into the new /etc/src.conf 519 while also properly renaming them. More conversions will 520 likely follow. Posting to current@: 521 522 http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 523 52420060305: 525 The NETSMBCRYPTO kernel option has been retired because its 526 functionality is always included in NETSMB and smbfs.ko now. 527 52820060303: 529 The TDFX_LINUX kernel option was retired and replaced by the 530 tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 531 kernel module. Loading it alone should suffice to get 3dfx support 532 for Linux apps because it will pull in 3dfx.ko and linux.ko through 533 its dependencies. 534 53520060204: 536 The 'audit' group was added to support the new auditing functionality 537 in the base system. Be sure to follow the directions for updating, 538 including the requirement to run mergemaster -p. 539 54020060201: 541 The kernel ABI to file system modules was changed on i386. 542 Please make sure that your kernel and modules are in sync. 543 54420060118: 545 This actually occured some time ago, but installing the kernel 546 now also installs a bunch of symbol files for the kernel modules. 547 This increases the size of /boot/kernel to about 67Mbytes. You 548 will need twice this if you will eventually back this up to kernel.old 549 on your next install. 550 If you have a shortage of room in your root partition, you should add 551 -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 552 to your /etc/make.conf. 553 55420060113: 555 libc's malloc implementation has been replaced. This change has the 556 potential to uncover application bugs that previously went unnoticed. 557 See the malloc(3) manual page for more details. 558 55920060112: 560 The generic netgraph(4) cookie has been changed. If you upgrade 561 kernel passing this point, you also need to upgrade userland 562 and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 563 56420060106: 565 si(4)'s device files now contain the unit number. 566 Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 567 56820060106: 569 The kernel ABI was mostly destroyed due to a change in the size 570 of struct lock_object which is nested in other structures such 571 as mutexes which are nested in all sorts of other structures. 572 Make sure your kernel and modules are in sync. 573 57420051231: 575 The page coloring algorithm in the VM subsystem was converted 576 from tuning with kernel options to autotuning. Please remove 577 any PQ_* option except PQ_NOOPT from your kernel config. 578 57920051211: 580 The net80211-related tools in the tools/tools/ath directory 581 have been moved to tools/tools/net80211 and renamed with a 582 "wlan" prefix. Scripts that use them should be adjusted 583 accordingly. 584 58520051202: 586 Scripts in the local_startup directories (as defined in 587 /etc/defaults/rc.conf) that have the new rc.d semantics will 588 now be run as part of the base system rcorder. If there are 589 errors or problems with one of these local scripts, it could 590 cause boot problems. If you encounter such problems, boot in 591 single user mode, remove that script from the */rc.d directory. 592 Please report the problem to the port's maintainer, and the 593 freebsd-ports@freebsd.org mailing list. 594 59520051129: 596 The nodev mount option was deprecated in RELENG_6 (where it 597 was a no-op), and is now unsupported. If you have nodev or dev listed 598 in /etc/fstab, remove it, otherwise it will result in a mount error. 599 60020051129: 601 ABI between ipfw(4) and ipfw(8) has been changed. You need 602 to rebuild ipfw(8) when rebuilding kernel. 603 60420051108: 605 rp(4)'s device files now contain the unit number. 606 Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 607 60820051029: 609 /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 610 Its /etc/rc.conf.d configuration file has been `ppp' from 611 the beginning, and hence there is no need to touch it. 612 61320051014: 614 Now most modules get their build-time options from the kernel 615 configuration file. A few modules still have fixed options 616 due to their non-conformant implementation, but they will be 617 corrected eventually. You may need to review the options of 618 the modules in use, explicitly specify the non-default options 619 in the kernel configuration file, and rebuild the kernel and 620 modules afterwards. 621 62220051001: 623 kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 624 to turn polling(4) on your interfaces. 625 62620050927: 627 The old bridge(4) implementation was retired. The new 628 if_bridge(4) serves as a full functional replacement. 629 63020050722: 631 The ai_addrlen of a struct addrinfo was changed to a socklen_t 632 to conform to POSIX-2001. This change broke an ABI 633 compatibility on 64 bit architecture. You have to recompile 634 userland programs that use getaddrinfo(3) on 64 bit 635 architecture. 636 63720050711: 638 RELENG_6 branched here. 639 64020050629: 641 The pccard_ifconfig rc.conf variable has been removed and a new 642 variable, ifconfig_DEFAULT has been introduced. Unlike 643 pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 644 do not have ifconfig_ifn entries rather than just those in 645 removable_interfaces. 646 64720050616: 648 Some previous versions of PAM have permitted the use of 649 non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 650 to third party PAM modules in /usr/local/lib. A change has been 651 made to require the use of absolute paths in order to avoid 652 ambiguity and dependence on library path configuration, which may 653 affect existing configurations. 654 65520050610: 656 Major changes to network interface API. All drivers must be 657 recompiled. Drivers not in the base system will need to be 658 updated to the new APIs. 659 66020050609: 661 Changes were made to kinfo_proc in sys/user.h. Please recompile 662 userland, or commands like `fstat', `pkill', `ps', `top' and `w' 663 will not behave correctly. 664 665 The API and ABI for hwpmc(4) have changed with the addition 666 of sampling support. Please recompile lib/libpmc(3) and 667 usr.sbin/{pmcstat,pmccontrol}. 668 66920050606: 670 The OpenBSD dhclient was imported in place of the ISC dhclient 671 and the network interface configuration scripts were updated 672 accordingly. If you use DHCP to configure your interfaces, you 673 must now run devd. Also, DNS updating was lost so you will need 674 to find a workaround if you use this feature. 675 676 The '_dhcp' user was added to support the OpenBSD dhclient. Be 677 sure to run mergemaster -p (like you are supposed to do every time 678 anyway). 679 68020050605: 681 if_bridge was added to the tree. This has changed struct ifnet. 682 Please recompile userland and all network related modules. 683 68420050603: 685 The n_net of a struct netent was changed to an uint32_t, and 686 1st argument of getnetbyaddr() was changed to an uint32_t, to 687 conform to POSIX-2001. These changes broke an ABI 688 compatibility on 64 bit architecture. With these changes, 689 shlib major of libpcap was bumped. You have to recompile 690 userland programs that use getnetbyaddr(3), getnetbyname(3), 691 getnetent(3) and/or libpcap on 64 bit architecture. 692 69320050528: 694 Kernel parsing of extra options on '#!' first lines of shell 695 scripts has changed. Lines with multiple options likely will 696 fail after this date. For full details, please see 697 http://people.freebsd.org/~gad/Updating-20050528.txt 698 69920050503: 700 The packet filter (pf) code has been updated to OpenBSD 3.7 701 Please note the changed anchor syntax and the fact that 702 authpf(8) now needs a mounted fdescfs(5) to function. 703 70420050415: 705 The NO_MIXED_MODE kernel option has been removed from the i386 706 amd64 platforms as its use has been superceded by the new local 707 APIC timer code. Any kernel config files containing this option 708 should be updated. 709 71020050227: 711 The on-disk format of LC_CTYPE files was changed to be machine 712 independent. Please make sure NOT to use NO_CLEAN buildworld 713 when crossing this point. Crossing this point also requires 714 recompile or reinstall of all locale depended packages. 715 71620050225: 717 The ifi_epoch member of struct if_data has been changed to 718 contain the uptime at which the interface was created or the 719 statistics zeroed rather then the wall clock time because 720 wallclock time may go backwards. This should have no impact 721 unless an snmp implementation is using this value (I know of 722 none at this point.) 723 72420050224: 725 The acpi_perf and acpi_throttle drivers are now part of the 726 acpi(4) main module. They are no longer built separately. 727 72820050223: 729 The layout of struct image_params has changed. You have to 730 recompile all compatibility modules (linux, svr4, etc) for use 731 with the new kernel. 732 73320050223: 734 The p4tcc driver has been merged into cpufreq(4). This makes 735 "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 736 compile in "device cpufreq" to restore this functionality. 737 73820050220: 739 The responsibility of recomputing the file system summary of 740 a SoftUpdates-enabled dirty volume has been transferred to the 741 background fsck. A rebuild of fsck(8) utility is recommended 742 if you have updated the kernel. 743 744 To get the old behavior (recompute file system summary at mount 745 time), you can set vfs.ffs.compute_summary_at_mount=1 before 746 mounting the new volume. 747 74820050206: 749 The cpufreq import is complete. As part of this, the sysctls for 750 acpi(4) throttling have been removed. The power_profile script 751 has been updated, so you can use performance/economy_cpu_freq in 752 rc.conf(5) to set AC on/offline cpu frequencies. 753 75420050206: 755 NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 756 requires recompiling libnetgraph and userland netgraph utilities. 757 75820050114: 759 Support for abbreviated forms of a number of ipfw options is 760 now deprecated. Warnings are printed to stderr indicating the 761 correct full form when a match occurs. Some abbreviations may 762 be supported at a later date based on user feedback. To be 763 considered for support, abbreviations must be in use prior to 764 this commit and unlikely to be confused with current key words. 765 76620041221: 767 By a popular demand, a lot of NOFOO options were renamed 768 to NO_FOO (see bsd.compat.mk for a full list). The old 769 spellings are still supported, but will cause annoying 770 warnings on stderr. Make sure you upgrade properly (see 771 the COMMON ITEMS: section later in this file). 772 77320041219: 774 Auto-loading of ancillary wlan modules such as wlan_wep has 775 been temporarily disabled; you need to statically configure 776 the modules you need into your kernel or explicitly load them 777 prior to use. Specifically, if you intend to use WEP encryption 778 with an 802.11 device load/configure wlan_wep; if you want to 779 use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 780 and wlan_xauth as required. 781 78220041213: 783 The behaviour of ppp(8) has changed slightly. If lqr is enabled 784 (``enable lqr''), older versions would revert to LCP ECHO mode on 785 negotiation failure. Now, ``enable echo'' is required for this 786 behaviour. The ppp version number has been bumped to 3.4.2 to 787 reflect the change. 788 78920041201: 790 The wlan support has been updated to split the crypto support 791 into separate modules. For static WEP you must configure the 792 wlan_wep module in your system or build and install the module 793 in place where it can be loaded (the kernel will auto-load 794 the module when a wep key is configured). 795 79620041201: 797 The ath driver has been updated to split the tx rate control 798 algorithm into a separate module. You need to include either 799 ath_rate_onoe or ath_rate_amrr when configuring the kernel. 800 80120041116: 802 Support for systems with an 80386 CPU has been removed. Please 803 use FreeBSD 5.x or earlier on systems with an 80386. 804 80520041110: 806 We have had a hack which would mount the root filesystem 807 R/W if the device were named 'md*'. As part of the vnode 808 work I'm doing I have had to remove this hack. People 809 building systems which use preloaded MD root filesystems 810 may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 811 their /etc/rc scripts. 812 81320041104: 814 FreeBSD 5.3 shipped here. 815 81620041102: 817 The size of struct tcpcb has changed again due to the removal 818 of RFC1644 T/TCP. You have to recompile userland programs that 819 read kmem for tcp sockets directly (netstat, sockstat, etc.) 820 82120041022: 822 The size of struct tcpcb has changed. You have to recompile 823 userland programs that read kmem for tcp sockets directly 824 (netstat, sockstat, etc.) 825 82620041016: 827 RELENG_5 branched here. For older entries, please see updating 828 in the RELENG_5 branch. 829 830COMMON ITEMS: 831 832 General Notes 833 ------------- 834 Avoid using make -j when upgrading. From time to time in the 835 past there have been problems using -j with buildworld and/or 836 installworld. This is especially true when upgrading between 837 "distant" versions (eg one that cross a major release boundary 838 or several minor releases, or when several months have passed 839 on the -current branch). 840 841 Sometimes, obscure build problems are the result of environment 842 poisoning. This can happen because the make utility reads its 843 environment when searching for values for global variables. 844 To run your build attempts in an "environmental clean room", 845 prefix all make commands with 'env -i '. See the env(1) manual 846 page for more details. 847 848 When upgrading from one major version to another it is generally 849 best to upgrade to the latest code in the currently installed branch 850 first, then do an upgrade to the new branch. This is the best-tested 851 upgrade path, and has the highest probability of being successful. 852 Please try this approach before reporting problems with a major 853 version upgrade. 854 855 To build a kernel 856 ----------------- 857 If you are updating from a prior version of FreeBSD (even one just 858 a few days old), you should follow this procedure. It is the most 859 failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 860 861 make kernel-toolchain 862 make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 863 make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 864 865 To test a kernel once 866 --------------------- 867 If you just want to boot a kernel once (because you are not sure 868 if it works, or if you want to boot a known bad kernel to provide 869 debugging information) run 870 make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 871 nextboot -k testkernel 872 873 To just build a kernel when you know that it won't mess you up 874 -------------------------------------------------------------- 875 This assumes you are already running a 5.X system. Replace 876 ${arch} with the architecture of your machine (e.g. "i386", 877 "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 878 879 cd src/sys/${arch}/conf 880 config KERNEL_NAME_HERE 881 cd ../compile/KERNEL_NAME_HERE 882 make depend 883 make 884 make install 885 886 If this fails, go to the "To build a kernel" section. 887 888 To rebuild everything and install it on the current system. 889 ----------------------------------------------------------- 890 # Note: sometimes if you are running current you gotta do more than 891 # is listed here if you are upgrading from a really old current. 892 893 <make sure you have good level 0 dumps> 894 make buildworld 895 make kernel KERNCONF=YOUR_KERNEL_HERE 896 [1] 897 <reboot in single user> [3] 898 mergemaster -p [5] 899 make installworld 900 make delete-old 901 mergemaster [4] 902 <reboot> 903 904 905 To cross-install current onto a separate partition 906 -------------------------------------------------- 907 # In this approach we use a separate partition to hold 908 # current's root, 'usr', and 'var' directories. A partition 909 # holding "/", "/usr" and "/var" should be about 2GB in 910 # size. 911 912 <make sure you have good level 0 dumps> 913 <boot into -stable> 914 make buildworld 915 make buildkernel KERNCONF=YOUR_KERNEL_HERE 916 <maybe newfs current's root partition> 917 <mount current's root partition on directory ${CURRENT_ROOT}> 918 make installworld DESTDIR=${CURRENT_ROOT} 919 make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 920 make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 921 cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 922 <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 923 <reboot into current> 924 <do a "native" rebuild/install as described in the previous section> 925 <maybe install compatibility libraries from src/lib/compat> 926 <reboot> 927 928 929 To upgrade in-place from 5.x-stable to current 930 ---------------------------------------------- 931 <make sure you have good level 0 dumps> 932 make buildworld [9] 933 make kernel KERNCONF=YOUR_KERNEL_HERE [8] 934 [1] 935 <reboot in single user> [3] 936 mergemaster -p [5] 937 make installworld 938 make delete-old 939 mergemaster -i [4] 940 <reboot> 941 942 Make sure that you've read the UPDATING file to understand the 943 tweaks to various things you need. At this point in the life 944 cycle of current, things change often and you are on your own 945 to cope. The defaults can also change, so please read ALL of 946 the UPDATING entries. 947 948 Also, if you are tracking -current, you must be subscribed to 949 freebsd-current@freebsd.org. Make sure that before you update 950 your sources that you have read and understood all the recent 951 messages there. If in doubt, please track -stable which has 952 much fewer pitfalls. 953 954 [1] If you have third party modules, such as vmware, you 955 should disable them at this point so they don't crash your 956 system on reboot. 957 958 [3] From the bootblocks, boot -s, and then do 959 fsck -p 960 mount -u / 961 mount -a 962 cd src 963 adjkerntz -i # if CMOS is wall time 964 Also, when doing a major release upgrade, it is required that 965 you boot into single user mode to do the installworld. 966 967 [4] Note: This step is non-optional. Failure to do this step 968 can result in a significant reduction in the functionality of the 969 system. Attempting to do it by hand is not recommended and those 970 that pursue this avenue should read this file carefully, as well 971 as the archives of freebsd-current and freebsd-hackers mailing lists 972 for potential gotchas. 973 974 [5] Usually this step is a noop. However, from time to time 975 you may need to do this if you get unknown user in the following 976 step. It never hurts to do it all the time. You may need to 977 install a new mergemaster (cd src/usr.sbin/mergemaster && make 978 install) after the buildworld before this step if you last updated 979 from current before 20020224 or from -stable before 20020408. 980 981 [8] In order to have a kernel that can run the 4.x binaries 982 needed to do an installworld, you must include the COMPAT_FREEBSD4 983 option in your kernel. Failure to do so may leave you with a system 984 that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 985 is required to run the 5.x binaries on more recent kernels. 986 987 Make sure that you merge any new devices from GENERIC since the 988 last time you updated your kernel config file. 989 990 [9] When checking out sources, you must include the -P flag to have 991 cvs prune empty directories. 992 993 If CPUTYPE is defined in your /etc/make.conf, make sure to use the 994 "?=" instead of the "=" assignment operator, so that buildworld can 995 override the CPUTYPE if it needs to. 996 997 MAKEOBJDIRPREFIX must be defined in an environment variable, and 998 not on the command line, or in /etc/make.conf. buildworld will 999 warn if it is improperly defined. 1000FORMAT: 1001 1002This file contains a list, in reverse chronological order, of major 1003breakages in tracking -current. Not all things will be listed here, 1004and it only starts on October 16, 2004. Updating files can found in 1005previous releases if your system is older than this. 1006 1007Copyright information: 1008 1009Copyright 1998-2005 M. Warner Losh. All Rights Reserved. 1010 1011Redistribution, publication, translation and use, with or without 1012modification, in full or in part, in any form or format of this 1013document are permitted without further permission from the author. 1014 1015THIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 1016IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1017WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1018DISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 1019INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 1020(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1021SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 1022HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 1023STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 1024IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 1025POSSIBILITY OF SUCH DAMAGE. 1026 1027If you find this document useful, and you want to, you may buy the 1028author a beer. 1029 1030Contact Warner Losh if you have any questions about your use of 1031this document. 1032 1033$FreeBSD: head/UPDATING 178609 2008-04-27 04:07:36Z imp $ 1034