UPDATING revision 170613
1169689SkanUpdating Information for FreeBSD current users 2169689Skan 3169689SkanThis file is maintained and copyrighted by M. Warner Losh 4169689Skan<imp@village.org>. See end of file for further details. For commonly 5169689Skandone items, please see the COMMON ITEMS: section later in the file. 6169689Skan 7169689SkanItems affecting the ports and packages system can be found in 8169689Skan/usr/ports/UPDATING. Please read that file before running 9169689Skanportupgrade. 10169689Skan 11169689SkanNOTE TO PEOPLE WHO THINK THAT FreeBSD 7.x IS SLOW: 12169689Skan FreeBSD 7.x has many debugging features turned on, in 13169689Skan both the kernel and userland. These features attempt to detect 14169689Skan incorrect use of system primitives, and encourage loud failure 15169689Skan through extra sanity checking and fail stop semantics. They 16169689Skan also substantially impact system performance. If you want to 17169689Skan do performance measurement, benchmarking, and optimization, 18169689Skan you'll want to turn them off. This includes various WITNESS- 19169689Skan related kernel options, INVARIANTS, malloc debugging flags 20169689Skan in userland, and various verbose features in the kernel. Many 21169689Skan developers choose to disable these features on build machines 22169689Skan to maximize performance. 23169689Skan 24169689Skan20070612: 25169689Skan The IPv4 multicast socket code has been considerably modified, and 26169689Skan moved to the file sys/netinet/in_mcast.c. Initial support for the 27169689Skan RFC 3678 Source-Specific Multicast Socket API has been added to 28169689Skan the IPv4 network stack. 29169689Skan 30169689Skan Strict multicast and broadcast reception is now the default for 31169689Skan UDP/IPv4 sockets; the net.inet.udp.strict_mcast_mship sysctl variable 32169689Skan has now been removed. 33169689Skan 34169689Skan The RFC 1724 hack for interface selection has been removed; the use 35169689Skan of the Linux-derived ip_mreqn structure with IP_MULTICAST_IF has 36169689Skan been added to replace it. Consumers such as routed will soon be 37169689Skan updated to reflect this. 38169689Skan 39169689Skan These changes affect users who are running routed(8) or rdisc(8) 40169689Skan from the FreeBSD base system on point-to-point or unnumbered 41169689Skan interfaces. 42169689Skan 43169689Skan20070610: 44169689Skan The net80211 layer has changed significantly and all wireless 45169689Skan drivers that depend on it need to be recompiled. Further these 46169689Skan changes require that any program that interacts with the wireless 47169689Skan support in the kernel be recompiled; this includes: ifconfig, 48169689Skan wpa_supplicant, hostapd, and wlanstats. Users must also, for 49169689Skan the moment, kldload the wlan_scan_sta and/or wlan_scan_ap modules 50169689Skan if they use modules for wireless support. These modules implement 51169689Skan scanning support for station and ap modes, respectively. Failure 52169689Skan to load the appropriate module before marking a wireless interface 53169689Skan up will result in a message to the console and the device not 54169689Skan operating properly. 55169689Skan 56169689Skan20070610: 57169689Skan The pam_nologin(8) module ceases to provide an authentication 58169689Skan function and starts providing an account management function. 59169689Skan Consequent changes to /etc/pam.d should be brought in using 60169689Skan mergemaster(8). Third-party files in /usr/local/etc/pam.d may 61169689Skan need manual editing as follows. Locate this line (or similar): 62169689Skan 63169689Skan auth required pam_nologin.so no_warn 64169689Skan 65169689Skan and change it according to this example: 66169689Skan 67169689Skan account required pam_nologin.so no_warn 68169689Skan 69169689Skan That is, the first word needs to be changed from "auth" to 70169689Skan "account". The new line can be moved to the account section 71169689Skan within the file for clarity. Not updating pam.conf(5) files 72169689Skan will result in nologin(5) ignored by the respective services. 73169689Skan 74169689Skan20070529: 75169689Skan The ether_ioctl() function has been synchronized with ioctl(2) 76169689Skan and ifnet.if_ioctl. Due to that, the size of one of its arguments 77169689Skan has changed on 64-bit architectures. All kernel modules using 78169689Skan ether_ioctl() need to be rebuilt on such architectures. 79169689Skan 80169689Skan20070516: 81169689Skan Improved INCLUDE_CONFIG_FILE support has been introduced to the 82169689Skan config(8) utility. In order to take advantage of this new 83169689Skan functionality, you are expected to recompile and install 84169689Skan src/usr.sbin/config. If you don't rebuild config(8), and your 85169689Skan kernel configuration depends on INCLUDE_CONFIG_FILE, the kernel 86169689Skan build will be broken because of a missing "kernconfstring" 87169689Skan symbol. 88169689Skan 89169689Skan20070513: 90169689Skan Symbol versioning is enabled by default. To disable it, use 91169689Skan option WITHOUT_SYMVER. It is not advisable to attempt to 92169689Skan disable symbol versioning once it is enabled; your installworld 93169689Skan will break because a symbol version-less libc will get installed 94169689Skan before the install tools. As a result, the old install tools, 95169689Skan which previously had symbol dependencies to FBSD_1.0, will fail 96169689Skan because the freshly installed libc will not have them. 97169689Skan 98169689Skan The default threading library has been changed to libthr. If 99169689Skan you wish to have libpthread as your default, use option 100169689Skan DEFAULT_THREAD_LIB=libpthread for the buildworld. 101169689Skan 102169689Skan20070423: 103169689Skan The ABI breakage in sendmail(8)'s libmilter has been repaired 104169689Skan so it is no longer necessary to recompile mail filters (aka, 105169689Skan milters). If you recompiled mail filters after the 20070408 106169689Skan note, it is not necessary to recompile them again. 107169689Skan 108169689Skan20070417: 109169689Skan The new trunk(4) driver has been renamed to lagg(4) as it better 110169689Skan reflects its purpose. ifconfig will need to be recompiled. 111169689Skan 112169689Skan20070408: 113169689Skan sendmail(8) has been updated to version 8.14.1. Mail filters 114169689Skan (aka, milters) compiled against the libmilter included in the 115169689Skan base operating system should be recompiled. 116169689Skan 117169689Skan20070302: 118169689Skan Firmwares for ipw(4) and iwi(4) are now included in the base tree. 119169689Skan In order to use them one must agree to the respective LICENSE in 120169689Skan share/doc/legal and define legal.intel_<name>.license_ack=1 via 121169689Skan loader.conf(5) or kenv(1). Make sure to deinstall the now 122169689Skan deprecated modules from the respective firmware ports. 123169689Skan 124169689Skan20070228: 125169689Skan The name resolution/mapping functions addr2ascii(3) and ascii2addr(3) 126169689Skan were removed from FreeBSD's libc. These originally came from INRIA 127169689Skan IPv6. Nothing in FreeBSD ever used them. They may be regarded as 128169689Skan deprecated in previous releases. 129169689Skan The AF_LINK support for getnameinfo(3) was merged from NetBSD to 130169689Skan replace it as a more portable (and re-entrant) API. 131169689Skan 132169689Skan20070224: 133169689Skan To support interrupt filtering a modification to the newbus API 134169689Skan has occurred, ABI was broken and __FreeBSD_version was bumped 135169689Skan to 700031. Please make sure that your kernel and modules are in 136169689Skan sync. For more info: 137169689Skan http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941 138169689Skan 139169689Skan20070224: 140169689Skan The IPv6 multicast forwarding code may now be loaded into GENERIC 141169689Skan kernels by loading the ip_mroute.ko module. This is built into the 142169689Skan module unless WITHOUT_INET6 or WITHOUT_INET6_SUPPORT options are 143169689Skan set; see src.conf(5) for more information. 144169689Skan 145169689Skan20070214: 146169689Skan The output of netstat -r has changed. Without -n, we now only 147169689Skan print a "network name" without the prefix length if the network 148169689Skan address and mask exactly match a Class A/B/C network, and an entry 149169689Skan exists in the nsswitch "networks" map. 150169689Skan With -n, we print the full unabbreviated CIDR network prefix in 151169689Skan the form "a.b.c.d/p". 0.0.0.0/0 is always printed as "default". 152169689Skan This change is in preparation for changes such as equal-cost 153169689Skan multipath, and to more generally assist operational deployment 154169689Skan of FreeBSD as a modern IPv4 router. 155169689Skan 156169689Skan20070210: 157169689Skan PIM has been turned on by default in the IPv4 multicast 158169689Skan routing code. The kernel option 'PIM' has now been removed. 159169689Skan PIM is now built by default if option 'MROUTING' is specified. 160169689Skan It may now be loaded into GENERIC kernels by loading the 161169689Skan ip_mroute.ko module. 162169689Skan 163169689Skan20070207: 164169689Skan Support for IPIP tunnels (VIFF_TUNNEL) in IPv4 multicast routing 165169689Skan has been removed. Its functionality may be achieved by explicitly 166169689Skan configuring gif(4) interfaces and using the 'phyint' keyword in 167169689Skan mrouted.conf. 168169689Skan XORP does not support source-routed IPv4 multicast tunnels nor the 169169689Skan integrated IPIP tunneling, therefore it is not affected by this 170169689Skan change. The __FreeBSD_version macro has been bumped to 700030. 171169689Skan 172169689Skan20061221: 173169689Skan Support for PCI Message Signalled Interrupts has been 174169689Skan re-enabled in the bge driver, only for those chips which are 175169689Skan believed to support it properly. If there are any problems, 176169689Skan MSI can be disabled completely by setting the 177169689Skan 'hw.pci.enable_msi' and 'hw.pci.enable_msix' tunables to 0 178169689Skan in the loader. 179169689Skan 180169689Skan20061214: 181169689Skan Support for PCI Message Signalled Interrupts has been 182169689Skan disabled again in the bge driver. Many revisions of the 183169689Skan hardware fail to support it properly. Support can be 184169689Skan re-enabled by removing the #define of BGE_DISABLE_MSI in 185169689Skan "src/sys/dev/bge/if_bge.c". 186169689Skan 187169689Skan20061214: 188169689Skan Support for PCI Message Signalled Interrupts has been added 189169689Skan to the bge driver. If there are any problems, MSI can be 190169689Skan disabled completely by setting the 'hw.pci.enable_msi' and 191169689Skan 'hw.pci.enable_msix' tunables to 0 in the loader. 192169689Skan 193169689Skan20061205: 194169689Skan The removal of several facets of the experimental Threading 195169689Skan system from the kernel means that the proc and thread structures 196169689Skan have changed quite a bit. I suggest all kernel modules that might 197169689Skan reference these structures be recompiled.. Especially the 198169689Skan linux module. 199169689Skan 200169689Skan20061126: 201169689Skan Sound infrastructure has been updated with various fixes and 202169689Skan improvements. Most of the changes are pretty much transparent, 203169689Skan with exceptions of followings: 204169689Skan 1) All sound driver specific sysctls (hw.snd.pcm%d.*) have been 205169689Skan moved to their own dev sysctl nodes, for example: 206169689Skan hw.snd.pcm0.vchans -> dev.pcm.0.vchans 207169689Skan 2) /dev/dspr%d.%d has been deprecated. Each channel now has its 208169689Skan own chardev in the form of "dsp%d.<function>%d", where <function> 209169689Skan is p = playback, r = record and v = virtual, respectively. Users 210169689Skan are encouraged to use these devs instead of (old) "/dev/dsp%d.%d". 211169689Skan This does not affect those who are using "/dev/dsp". 212169689Skan 213169689Skan20061122: 214169689Skan The following binaries have been disconnected from the build: 215169689Skan mount_devfs, mount_ext2fs, mount_fdescfs, mount_procfs, mount_linprocfs, 216169689Skan and mount_std. The functionality of these programs has been 217169689Skan moved into the mount program. For example, to mount a devfs 218169689Skan filesystem, instead of using mount_devfs, use: "mount -t devfs". 219169689Skan This does not affect entries in /etc/fstab, since entries in 220169689Skan /etc/fstab are always processed with "mount -t fstype". 221169689Skan 222169689Skan20061113: 223169689Skan Support for PCI Message Signalled Interrupts on i386 and amd64 224169689Skan has been added to the kernel and various drivers will soon be 225169689Skan updated to use MSI when it is available. If there are any problems, 226169689Skan MSI can be disabled completely by setting the 'hw.pci.enable_msi' 227169689Skan and 'hw.pci.enable_msix' tunables to 0 in the loader. 228169689Skan 229169689Skan20061110: 230169689Skan The MUTEX_PROFILING option has been renamed to LOCK_PROFILING. 231169689Skan The lockmgr object layout has been changed as a result of having 232169689Skan a lock_object embedded in it. As a consequence all file system 233169689Skan kernel modules must be re-compiled. The mutex profiling man page 234169689Skan has not yet been updated to reflect this change. 235169689Skan 236169689Skan20061026: 237169689Skan KSE in the kernel has now been made optional and turned on by 238169689Skan default. Use 'nooption KSE' in your kernel config to turn it 239169689Skan off. All kernel modules *must* be recompiled after this change. 240169689Skan There-after, modules from a KSE kernel should be compatible with 241169689Skan modules from a NOKSE kernel due to the temporary padding fields 242169689Skan added to 'struct proc'. 243169689Skan 244169689Skan20060929: 245169689Skan mrouted and its utilities have been removed from the base system. 246169689Skan 247169689Skan20060927: 248169689Skan Some ioctl(2) command codes have changed. Full backward ABI 249169689Skan compatibility is provided if the "options COMPAT_FREEBSD6" is 250169689Skan present in the kernel configuration file. Make sure to add 251169689Skan this option to your kernel config file, or recompile X.Org 252169689Skan and the rest of ports; otherwise they may refuse to work. 253169689Skan 254169689Skan20060924: 255169689Skan tcpslice has been removed from the base system. 256169689Skan 257169689Skan20060913: 258169689Skan The sizes of struct tcpcb (and struct xtcpcb) have changed due to 259169689Skan the rewrite of TCP syncookies. Tools like netstat, sockstat, and 260169689Skan systat needs to be rebuilt. 261169689Skan 262169689Skan20060903: 263169689Skan libpcap updated to v0.9.4 and tcpdump to v3.9.4 264169689Skan 265169689Skan20060816: 266169689Skan The IPFIREWALL_FORWARD_EXTENDED option is gone and the behaviour 267169689Skan for IPFIREWALL_FORWARD is now as it was before when it was first 268169689Skan committed and for years after. The behaviour is now ON. 269169689Skan 270169689Skan20060725: 271169689Skan enigma(1)/crypt(1) utility has been changed on 64 bit architectures. 272169689Skan Now it can decrypt files created from different architectures. 273169689Skan Unfortunately, it is no longer able to decrypt a cipher text 274169689Skan generated with an older version on 64 bit architectures. 275169689Skan If you have such a file, you need old utility to decrypt it. 276169689Skan 277169689Skan20060709: 278169689Skan The interface version of the i4b kernel part has changed. So 279169689Skan after updating the kernel sources and compiling a new kernel, 280169689Skan the i4b user space tools in "/usr/src/usr.sbin/i4b" must also 281169689Skan be rebuilt, and vice versa. 282169689Skan 283169689Skan20060627: 284169689Skan The XBOX kernel now defaults to the nfe(4) driver instead of 285169689Skan the nve(4) driver. Please update your configuration 286169689Skan accordingly. 287169689Skan 288169689Skan20060514: 289169689Skan The i386-only lnc(4) driver for the AMD Am7900 LANCE and Am79C9xx 290169689Skan PCnet family of NICs has been removed. The new le(4) driver serves 291169689Skan as an equivalent but cross-platform replacement with the pcn(4) 292169689Skan driver still providing performance-optimized support for the subset 293169689Skan of AMD Am79C971 PCnet-FAST and greater chips as before. 294169689Skan 295169689Skan20060511: 296169689Skan The machdep.* sysctls and the adjkerntz utility have been 297169689Skan modified a bit. The new adjkerntz utility uses the new 298169689Skan sysctl names and sysctlbyname() calls, so it may be impossible 299169689Skan to run an old /sbin/adjkerntz utility in single-user mode 300169689Skan with a new kernel. Replace the `adjkerntz -i' step before 301169689Skan `make installworld' with: 302169689Skan 303169689Skan /usr/obj/usr/src/sbin/adjkerntz/adjkerntz -i 304169689Skan 305169689Skan and proceed as usual with the rest of the installworld-stage 306169689Skan steps. Otherwise, you risk installing binaries with their 307169689Skan timestamp set several hours in the future, especially if 308169689Skan you are running with local time set to GMT+X hours. 309169689Skan 310169689Skan20060412: 311169689Skan The ip6fw utility has been removed. The behavior provided by 312169689Skan ip6fw has been in ipfw2 for a good while and the rc.d scripts 313169689Skan have been updated to deal with it. There are some rules that 314169689Skan might not migrate cleanly. Use rc.firewall6 as a template to 315169689Skan rewrite rules. 316169689Skan 317169689Skan20060428: 318169689Skan The puc(4) driver has been overhauled. The ebus(4) and sbus(4) 319169689Skan attachments have been removed. Make sure to configure scc(4) 320169689Skan on sparc64. Note also that by default puc(4) will use uart(4) 321169689Skan and not sio(4) for serial ports because interrupt handling has 322169689Skan been optimized for multi-port serial cards and only uart(4) 323169689Skan implements the interface to support it. 324169689Skan 325169689Skan20060330: 326169689Skan The scc(4) driver replaces puc(4) for Serial Communications 327169689Skan Controllers (SCCs) like the Siemens SAB82532 and the Zilog 328169689Skan Z8530. On sparc64, it is advised to add scc(4) to the kernel 329169689Skan configuration to make sure that the serial ports remain 330169689Skan functional. 331169689Skan 332169689Skan20060317: 333169689Skan Most world/kernel related NO_* build options changed names. 334169689Skan New knobs have common prefixes WITHOUT_*/WITH_* (modelled 335169689Skan after FreeBSD ports) and should be set in /etc/src.conf 336169689Skan (the src.conf(5) manpage is provided). Full backwards 337169689Skan compatibility is maintained for the time being though it's 338169689Skan highly recommended to start moving old options out of the 339169689Skan system-wide /etc/make.conf file into the new /etc/src.conf 340169689Skan while also properly renaming them. More conversions will 341169689Skan likely follow. Posting to current@: 342169689Skan 343169689Skan http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html 344169689Skan 345169689Skan20060305: 346169689Skan The NETSMBCRYPTO kernel option has been retired because its 347169689Skan functionality is always included in NETSMB and smbfs.ko now. 348169689Skan 349169689Skan20060303: 350169689Skan The TDFX_LINUX kernel option was retired and replaced by the 351169689Skan tdfx_linux device. The latter can be loaded as the 3dfx_linux.ko 352169689Skan kernel module. Loading it alone should suffice to get 3dfx support 353169689Skan for Linux apps because it will pull in 3dfx.ko and linux.ko through 354169689Skan its dependencies. 355169689Skan 356169689Skan20060204: 357169689Skan The 'audit' group was added to support the new auditing functionality 358169689Skan in the base system. Be sure to follow the directions for updating, 359169689Skan including the requirement to run mergemaster -p. 360169689Skan 361169689Skan20060201: 362169689Skan The kernel ABI to file system modules was changed on i386. 363169689Skan Please make sure that your kernel and modules are in sync. 364169689Skan 365169689Skan20060118: 366169689Skan This actually occured some time ago, but installing the kernel 367169689Skan now also installs a bunch of symbol files for the kernel modules. 368169689Skan This increases the size of /boot/kernel to about 67Mbytes. You 369169689Skan will need twice this if you will eventually back this up to kernel.old 370169689Skan on your next install. 371169689Skan If you have a shortage of room in your root partition, you should add 372169689Skan -DINSTALL_NODEBUG to your make arguments or add INSTALL_NODEBUG="yes" 373169689Skan to your /etc/make.conf. 374169689Skan 375169689Skan20060113: 376169689Skan libc's malloc implementation has been replaced. This change has the 377169689Skan potential to uncover application bugs that previously went unnoticed. 378169689Skan See the malloc(3) manual page for more details. 379169689Skan 380169689Skan20060112: 381169689Skan The generic netgraph(4) cookie has been changed. If you upgrade 382169689Skan kernel passing this point, you also need to upgrade userland 383169689Skan and netgraph(4) utilities like ports/net/mpd or ports/net/mpd4. 384169689Skan 385169689Skan20060106: 386169689Skan si(4)'s device files now contain the unit number. 387169689Skan Uses of {cua,tty}A[0-9a-f] should be replaced by {cua,tty}A0[0-9a-f]. 388169689Skan 389169689Skan20060106: 390169689Skan The kernel ABI was mostly destroyed due to a change in the size 391169689Skan of struct lock_object which is nested in other structures such 392169689Skan as mutexes which are nested in all sorts of other structures. 393169689Skan Make sure your kernel and modules are in sync. 394169689Skan 395169689Skan20051231: 396169689Skan The page coloring algorithm in the VM subsystem was converted 397169689Skan from tuning with kernel options to autotuning. Please remove 398169689Skan any PQ_* option except PQ_NOOPT from your kernel config. 399169689Skan 400169689Skan20051211: 401169689Skan The net80211-related tools in the tools/tools/ath directory 402169689Skan have been moved to tools/tools/net80211 and renamed with a 403169689Skan "wlan" prefix. Scripts that use them should be adjusted 404169689Skan accordingly. 405169689Skan 406169689Skan20051202: 407169689Skan Scripts in the local_startup directories (as defined in 408169689Skan /etc/defaults/rc.conf) that have the new rc.d semantics will 409169689Skan now be run as part of the base system rcorder. If there are 410169689Skan errors or problems with one of these local scripts, it could 411169689Skan cause boot problems. If you encounter such problems, boot in 412169689Skan single user mode, remove that script from the */rc.d directory. 413169689Skan Please report the problem to the port's maintainer, and the 414169689Skan freebsd-ports@freebsd.org mailing list. 415169689Skan 416169689Skan20051129: 417169689Skan The nodev mount option was deprecated in RELENG_6 (where it 418169689Skan was a no-op), and is now unsupported. If you have nodev or dev listed 419169689Skan in /etc/fstab, remove it, otherwise it will result in a mount error. 420169689Skan 421169689Skan20051129: 422169689Skan ABI between ipfw(4) and ipfw(8) has been changed. You need 423169689Skan to rebuild ipfw(8) when rebuilding kernel. 424169689Skan 425169689Skan20051108: 426169689Skan rp(4)'s device files now contain the unit number. 427169689Skan Uses of {cua,tty}R[0-9a-f] should be replaced by {cua,tty}R0[0-9a-f]. 428169689Skan 429169689Skan20051029: 430169689Skan /etc/rc.d/ppp-user has been renamed to /etc/rc.d/ppp. 431169689Skan Its /etc/rc.conf.d configuration file has been `ppp' from 432169689Skan the beginning, and hence there is no need to touch it. 433169689Skan 434169689Skan20051014: 435169689Skan Now most modules get their build-time options from the kernel 436169689Skan configuration file. A few modules still have fixed options 437169689Skan due to their non-conformant implementation, but they will be 438169689Skan corrected eventually. You may need to review the options of 439169689Skan the modules in use, explicitly specify the non-default options 440169689Skan in the kernel configuration file, and rebuild the kernel and 441169689Skan modules afterwards. 442169689Skan 443169689Skan20051001: 444169689Skan kern.polling.enable sysctl MIB is now deprecated. Use ifconfig(8) 445169689Skan to turn polling(4) on your interfaces. 446169689Skan 447169689Skan20050927: 448169689Skan The old bridge(4) implementation was retired. The new 449169689Skan if_bridge(4) serves as a full functional replacement. 450169689Skan 451169689Skan20050722: 452169689Skan The ai_addrlen of a struct addrinfo was changed to a socklen_t 453169689Skan to conform to POSIX-2001. This change broke an ABI 454169689Skan compatibility on 64 bit architecture. You have to recompile 455169689Skan userland programs that use getaddrinfo(3) on 64 bit 456169689Skan architecture. 457169689Skan 458169689Skan20050711: 459169689Skan RELENG_6 branched here. 460169689Skan 461169689Skan20050629: 462169689Skan The pccard_ifconfig rc.conf variable has been removed and a new 463169689Skan variable, ifconfig_DEFAULT has been introduced. Unlike 464169689Skan pccard_ifconfig, ifconfig_DEFAULT applies to ALL interfaces that 465169689Skan do not have ifconfig_ifn entries rather than just those in 466169689Skan removable_interfaces. 467169689Skan 468169689Skan20050616: 469169689Skan Some previous versions of PAM have permitted the use of 470169689Skan non-absolute paths in /etc/pam.conf or /etc/pam.d/* when referring 471169689Skan to third party PAM modules in /usr/local/lib. A change has been 472169689Skan made to require the use of absolute paths in order to avoid 473169689Skan ambiguity and dependence on library path configuration, which may 474169689Skan affect existing configurations. 475169689Skan 476169689Skan20050610: 477169689Skan Major changes to network interface API. All drivers must be 478169689Skan recompiled. Drivers not in the base system will need to be 479169689Skan updated to the new APIs. 480169689Skan 481169689Skan20050609: 482169689Skan Changes were made to kinfo_proc in sys/user.h. Please recompile 483169689Skan userland, or commands like `fstat', `pkill', `ps', `top' and `w' 484169689Skan will not behave correctly. 485169689Skan 486169689Skan The API and ABI for hwpmc(4) have changed with the addition 487169689Skan of sampling support. Please recompile lib/libpmc(3) and 488169689Skan usr.sbin/{pmcstat,pmccontrol}. 489169689Skan 490169689Skan20050606: 491169689Skan The OpenBSD dhclient was imported in place of the ISC dhclient 492169689Skan and the network interface configuration scripts were updated 493169689Skan accordingly. If you use DHCP to configure your interfaces, you 494169689Skan must now run devd. Also, DNS updating was lost so you will need 495169689Skan to find a workaround if you use this feature. 496169689Skan 497169689Skan The '_dhcp' user was added to support the OpenBSD dhclient. Be 498169689Skan sure to run mergemaster -p (like you are supposed to do every time 499169689Skan anyway). 500169689Skan 501169689Skan20050605: 502169689Skan if_bridge was added to the tree. This has changed struct ifnet. 503169689Skan Please recompile userland and all network related modules. 504169689Skan 505169689Skan20050603: 506169689Skan The n_net of a struct netent was changed to an uint32_t, and 507169689Skan 1st argument of getnetbyaddr() was changed to an uint32_t, to 508169689Skan conform to POSIX-2001. These changes broke an ABI 509169689Skan compatibility on 64 bit architecture. With these changes, 510169689Skan shlib major of libpcap was bumped. You have to recompile 511169689Skan userland programs that use getnetbyaddr(3), getnetbyname(3), 512169689Skan getnetent(3) and/or libpcap on 64 bit architecture. 513169689Skan 514169689Skan20050528: 515169689Skan Kernel parsing of extra options on '#!' first lines of shell 516169689Skan scripts has changed. Lines with multiple options likely will 517169689Skan fail after this date. For full details, please see 518169689Skan http://people.freebsd.org/~gad/Updating-20050528.txt 519169689Skan 520169689Skan20050503: 521169689Skan The packet filter (pf) code has been updated to OpenBSD 3.7 522169689Skan Please note the changed anchor syntax and the fact that 523169689Skan authpf(8) now needs a mounted fdescfs(5) to function. 524169689Skan 525169689Skan20050415: 526169689Skan The NO_MIXED_MODE kernel option has been removed from the i386 527169689Skan amd64 platforms as its use has been superceded by the new local 528169689Skan APIC timer code. Any kernel config files containing this option 529169689Skan should be updated. 530169689Skan 531169689Skan20050227: 532169689Skan The on-disk format of LC_CTYPE files was changed to be machine 533169689Skan independent. Please make sure NOT to use NO_CLEAN buildworld 534169689Skan when crossing this point. Crossing this point also requires 535169689Skan recompile or reinstall of all locale depended packages. 536169689Skan 537169689Skan20050225: 538169689Skan The ifi_epoch member of struct if_data has been changed to 539169689Skan contain the uptime at which the interface was created or the 540169689Skan statistics zeroed rather then the wall clock time because 541169689Skan wallclock time may go backwards. This should have no impact 542169689Skan unless an snmp implementation is using this value (I know of 543169689Skan none at this point.) 544169689Skan 545169689Skan20050224: 546169689Skan The acpi_perf and acpi_throttle drivers are now part of the 547169689Skan acpi(4) main module. They are no longer built separately. 548169689Skan 549169689Skan20050223: 550169689Skan The layout of struct image_params has changed. You have to 551169689Skan recompile all compatibility modules (linux, svr4, etc) for use 552169689Skan with the new kernel. 553169689Skan 554169689Skan20050223: 555169689Skan The p4tcc driver has been merged into cpufreq(4). This makes 556169689Skan "options CPU_ENABLE_TCC" obsolete. Please load cpufreq.ko or 557169689Skan compile in "device cpufreq" to restore this functionality. 558169689Skan 559169689Skan20050220: 560169689Skan The responsibility of recomputing the file system summary of 561169689Skan a SoftUpdates-enabled dirty volume has been transferred to the 562169689Skan background fsck. A rebuild of fsck(8) utility is recommended 563169689Skan if you have updated the kernel. 564169689Skan 565169689Skan To get the old behavior (recompute file system summary at mount 566169689Skan time), you can set vfs.ffs.compute_summary_at_mount=1 before 567169689Skan mounting the new volume. 568169689Skan 569169689Skan20050206: 570169689Skan The cpufreq import is complete. As part of this, the sysctls for 571169689Skan acpi(4) throttling have been removed. The power_profile script 572169689Skan has been updated, so you can use performance/economy_cpu_freq in 573169689Skan rc.conf(5) to set AC on/offline cpu frequencies. 574169689Skan 575169689Skan20050206: 576169689Skan NG_VERSION has been increased. Recompiling kernel (or ng_socket.ko) 577169689Skan requires recompiling libnetgraph and userland netgraph utilities. 578169689Skan 579169689Skan20050114: 580169689Skan Support for abbreviated forms of a number of ipfw options is 581169689Skan now deprecated. Warnings are printed to stderr indicating the 582169689Skan correct full form when a match occurs. Some abbreviations may 583169689Skan be supported at a later date based on user feedback. To be 584169689Skan considered for support, abbreviations must be in use prior to 585169689Skan this commit and unlikely to be confused with current key words. 586169689Skan 587169689Skan20041221: 588169689Skan By a popular demand, a lot of NOFOO options were renamed 589169689Skan to NO_FOO (see bsd.compat.mk for a full list). The old 590169689Skan spellings are still supported, but will cause annoying 591169689Skan warnings on stderr. Make sure you upgrade properly (see 592169689Skan the COMMON ITEMS: section later in this file). 593169689Skan 594169689Skan20041219: 595169689Skan Auto-loading of ancillary wlan modules such as wlan_wep has 596169689Skan been temporarily disabled; you need to statically configure 597169689Skan the modules you need into your kernel or explicitly load them 598169689Skan prior to use. Specifically, if you intend to use WEP encryption 599169689Skan with an 802.11 device load/configure wlan_wep; if you want to 600169689Skan use WPA with the ath driver load/configure wlan_tkip, wlan_ccmp, 601169689Skan and wlan_xauth as required. 602169689Skan 603169689Skan20041213: 604169689Skan The behaviour of ppp(8) has changed slightly. If lqr is enabled 605169689Skan (``enable lqr''), older versions would revert to LCP ECHO mode on 606169689Skan negotiation failure. Now, ``enable echo'' is required for this 607169689Skan behaviour. The ppp version number has been bumped to 3.4.2 to 608169689Skan reflect the change. 609169689Skan 610169689Skan20041201: 611169689Skan The wlan support has been updated to split the crypto support 612169689Skan into separate modules. For static WEP you must configure the 613169689Skan wlan_wep module in your system or build and install the module 614169689Skan in place where it can be loaded (the kernel will auto-load 615169689Skan the module when a wep key is configured). 616169689Skan 617169689Skan20041201: 618169689Skan The ath driver has been updated to split the tx rate control 619169689Skan algorithm into a separate module. You need to include either 620169689Skan ath_rate_onoe or ath_rate_amrr when configuring the kernel. 621169689Skan 622169689Skan20041116: 623169689Skan Support for systems with an 80386 CPU has been removed. Please 624169689Skan use FreeBSD 5.x or earlier on systems with an 80386. 625169689Skan 626169689Skan20041110: 627169689Skan We have had a hack which would mount the root filesystem 628169689Skan R/W if the device were named 'md*'. As part of the vnode 629169689Skan work I'm doing I have had to remove this hack. People 630169689Skan building systems which use preloaded MD root filesystems 631169689Skan may need to insert a "/sbin/mount -u -o rw /dev/md0 /" in 632169689Skan their /etc/rc scripts. 633169689Skan 634169689Skan20041104: 635169689Skan FreeBSD 5.3 shipped here. 636169689Skan 637169689Skan20041102: 638169689Skan The size of struct tcpcb has changed again due to the removal 639169689Skan of RFC1644 T/TCP. You have to recompile userland programs that 640169689Skan read kmem for tcp sockets directly (netstat, sockstat, etc.) 641169689Skan 642169689Skan20041022: 643169689Skan The size of struct tcpcb has changed. You have to recompile 644169689Skan userland programs that read kmem for tcp sockets directly 645169689Skan (netstat, sockstat, etc.) 646169689Skan 647169689Skan20041016: 648169689Skan RELENG_5 branched here. For older entries, please see updating 649169689Skan in the RELENG_5 branch. 650169689Skan 651169689SkanCOMMON ITEMS: 652169689Skan 653169689Skan General Notes 654169689Skan ------------- 655169689Skan Avoid using make -j when upgrading. From time to time in the 656169689Skan past there have been problems using -j with buildworld and/or 657169689Skan installworld. This is especially true when upgrading between 658169689Skan "distant" versions (eg one that cross a major release boundary 659169689Skan or several minor releases, or when several months have passed 660169689Skan on the -current branch). 661169689Skan 662169689Skan Sometimes, obscure build problems are the result of environment 663169689Skan poisoning. This can happen because the make utility reads its 664169689Skan environment when searching for values for global variables. 665169689Skan To run your build attempts in an "environmental clean room", 666169689Skan prefix all make commands with 'env -i '. See the env(1) manual 667169689Skan page for more details. 668169689Skan 669169689Skan When upgrading from one major version to another it is generally 670169689Skan best to upgrade to the latest code in the currently installed branch 671169689Skan first, then do an upgrade to the new branch. This is the best-tested 672169689Skan upgrade path, and has the highest probability of being successful. 673169689Skan Please try this approach before reporting problems with a major 674169689Skan version upgrade. 675169689Skan 676169689Skan To build a kernel 677169689Skan ----------------- 678169689Skan If you are updating from a prior version of FreeBSD (even one just 679169689Skan a few days old), you should follow this procedure. It is the most 680169689Skan failsafe as it uses a /usr/obj tree with a fresh mini-buildworld, 681169689Skan 682169689Skan make kernel-toolchain 683169689Skan make -DALWAYS_CHECK_MAKE buildkernel KERNCONF=YOUR_KERNEL_HERE 684169689Skan make -DALWAYS_CHECK_MAKE installkernel KERNCONF=YOUR_KERNEL_HERE 685169689Skan 686169689Skan To test a kernel once 687169689Skan --------------------- 688169689Skan If you just want to boot a kernel once (because you are not sure 689169689Skan if it works, or if you want to boot a known bad kernel to provide 690169689Skan debugging information) run 691169689Skan make installkernel KERNCONF=YOUR_KERNEL_HERE KODIR=/boot/testkernel 692169689Skan nextboot -k testkernel 693169689Skan 694169689Skan To just build a kernel when you know that it won't mess you up 695169689Skan -------------------------------------------------------------- 696169689Skan This assumes you are already running a 5.X system. Replace 697169689Skan ${arch} with the architecture of your machine (e.g. "i386", 698169689Skan "alpha", "amd64", "ia64", "pc98", "sparc64", etc). 699169689Skan 700169689Skan cd src/sys/${arch}/conf 701169689Skan config KERNEL_NAME_HERE 702169689Skan cd ../compile/KERNEL_NAME_HERE 703169689Skan make depend 704169689Skan make 705169689Skan make install 706169689Skan 707169689Skan If this fails, go to the "To build a kernel" section. 708169689Skan 709169689Skan To rebuild everything and install it on the current system. 710169689Skan ----------------------------------------------------------- 711169689Skan # Note: sometimes if you are running current you gotta do more than 712169689Skan # is listed here if you are upgrading from a really old current. 713169689Skan 714169689Skan <make sure you have good level 0 dumps> 715169689Skan make buildworld 716169689Skan make kernel KERNCONF=YOUR_KERNEL_HERE 717169689Skan [1] 718169689Skan <reboot in single user> [3] 719169689Skan mergemaster -p [5] 720169689Skan make installworld 721169689Skan make delete-old 722169689Skan mergemaster [4] 723169689Skan <reboot> 724169689Skan 725169689Skan 726169689Skan To cross-install current onto a separate partition 727169689Skan -------------------------------------------------- 728169689Skan # In this approach we use a separate partition to hold 729169689Skan # current's root, 'usr', and 'var' directories. A partition 730169689Skan # holding "/", "/usr" and "/var" should be about 2GB in 731169689Skan # size. 732169689Skan 733169689Skan <make sure you have good level 0 dumps> 734169689Skan <boot into -stable> 735169689Skan make buildworld 736169689Skan make buildkernel KERNCONF=YOUR_KERNEL_HERE 737169689Skan <maybe newfs current's root partition> 738169689Skan <mount current's root partition on directory ${CURRENT_ROOT}> 739169689Skan make installworld DESTDIR=${CURRENT_ROOT} 740169689Skan make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd 741169689Skan make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} 742169689Skan cp /etc/fstab ${CURRENT_ROOT}/etc/fstab # if newfs'd 743169689Skan <edit ${CURRENT_ROOT}/etc/fstab to mount "/" from the correct partition> 744169689Skan <reboot into current> 745169689Skan <do a "native" rebuild/install as described in the previous section> 746169689Skan <maybe install compatibility libraries from src/lib/compat> 747169689Skan <reboot> 748169689Skan 749169689Skan 750169689Skan To upgrade in-place from 5.x-stable to current 751169689Skan ---------------------------------------------- 752169689Skan <make sure you have good level 0 dumps> 753169689Skan make buildworld [9] 754169689Skan make kernel KERNCONF=YOUR_KERNEL_HERE [8] 755169689Skan [1] 756169689Skan <reboot in single user> [3] 757169689Skan mergemaster -p [5] 758169689Skan make installworld 759169689Skan make delete-old 760169689Skan mergemaster -i [4] 761169689Skan <reboot> 762169689Skan 763169689Skan Make sure that you've read the UPDATING file to understand the 764169689Skan tweaks to various things you need. At this point in the life 765169689Skan cycle of current, things change often and you are on your own 766169689Skan to cope. The defaults can also change, so please read ALL of 767169689Skan the UPDATING entries. 768169689Skan 769169689Skan Also, if you are tracking -current, you must be subscribed to 770169689Skan freebsd-current@freebsd.org. Make sure that before you update 771169689Skan your sources that you have read and understood all the recent 772169689Skan messages there. If in doubt, please track -stable which has 773169689Skan much fewer pitfalls. 774169689Skan 775169689Skan [1] If you have third party modules, such as vmware, you 776169689Skan should disable them at this point so they don't crash your 777169689Skan system on reboot. 778169689Skan 779169689Skan [3] From the bootblocks, boot -s, and then do 780169689Skan fsck -p 781169689Skan mount -u / 782169689Skan mount -a 783169689Skan cd src 784169689Skan adjkerntz -i # if CMOS is wall time 785169689Skan Also, when doing a major release upgrade, it is required that 786169689Skan you boot into single user mode to do the installworld. 787169689Skan 788169689Skan [4] Note: This step is non-optional. Failure to do this step 789169689Skan can result in a significant reduction in the functionality of the 790169689Skan system. Attempting to do it by hand is not recommended and those 791169689Skan that pursue this avenue should read this file carefully, as well 792169689Skan as the archives of freebsd-current and freebsd-hackers mailing lists 793169689Skan for potential gotchas. 794169689Skan 795169689Skan [5] Usually this step is a noop. However, from time to time 796169689Skan you may need to do this if you get unknown user in the following 797169689Skan step. It never hurts to do it all the time. You may need to 798169689Skan install a new mergemaster (cd src/usr.sbin/mergemaster && make 799169689Skan install) after the buildworld before this step if you last updated 800169689Skan from current before 20020224 or from -stable before 20020408. 801169689Skan 802169689Skan [8] In order to have a kernel that can run the 4.x binaries 803169689Skan needed to do an installworld, you must include the COMPAT_FREEBSD4 804169689Skan option in your kernel. Failure to do so may leave you with a system 805169689Skan that is hard to boot to recover. A similar kernel option COMPAT_FREEBSD5 806169689Skan is required to run the 5.x binaries on more recent kernels. 807169689Skan 808169689Skan Make sure that you merge any new devices from GENERIC since the 809169689Skan last time you updated your kernel config file. 810169689Skan 811169689Skan [9] When checking out sources, you must include the -P flag to have 812169689Skan cvs prune empty directories. 813169689Skan 814169689Skan If CPUTYPE is defined in your /etc/make.conf, make sure to use the 815169689Skan "?=" instead of the "=" assignment operator, so that buildworld can 816169689Skan override the CPUTYPE if it needs to. 817169689Skan 818169689Skan MAKEOBJDIRPREFIX must be defined in an environment variable, and 819169689Skan not on the command line, or in /etc/make.conf. buildworld will 820169689Skan warn if it is improperly defined. 821169689SkanFORMAT: 822169689Skan 823169689SkanThis file contains a list, in reverse chronological order, of major 824169689Skanbreakages in tracking -current. Not all things will be listed here, 825169689Skanand it only starts on October 16, 2004. Updating files can found in 826169689Skanprevious releases if your system is older than this. 827169689Skan 828169689SkanCopyright information: 829169689Skan 830169689SkanCopyright 1998-2005 M. Warner Losh. All Rights Reserved. 831169689Skan 832169689SkanRedistribution, publication, translation and use, with or without 833169689Skanmodification, in full or in part, in any form or format of this 834169689Skandocument are permitted without further permission from the author. 835169689Skan 836169689SkanTHIS DOCUMENT IS PROVIDED BY WARNER LOSH ``AS IS'' AND ANY EXPRESS OR 837169689SkanIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 838169689SkanWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 839169689SkanDISCLAIMED. IN NO EVENT SHALL WARNER LOSH BE LIABLE FOR ANY DIRECT, 840169689SkanINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 841169689Skan(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 842169689SkanSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 843169689SkanHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 844169689SkanSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 845169689SkanIN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 846169689SkanPOSSIBILITY OF SUCH DAMAGE. 847169689Skan 848169689SkanIf you find this document useful, and you want to, you may buy the 849169689Skanauthor a beer. 850169689Skan 851169689SkanContact Warner Losh if you have any questions about your use of 852169689Skanthis document. 853169689Skan 854169689Skan$FreeBSD: head/UPDATING 170613 2007-06-12 16:24:56Z bms $ 855169689Skan